Как добавить вывод команды в конец текстового файла?
Как добавить вывод в конец текстового файла
Ответ 1
Используйте >>
вместо >
при перенаправлении вывода в файл:
your_command >> file_to_append_to
Если file_to_append_to
не существует, он будет создан.
Пример:
$ echo "hello" > file
$ echo "world" >> file
$ cat file
hello
world
Ответ 2
Вы можете использовать оператор → . Это добавит данные из команды в конец текстового файла.
Чтобы протестировать эту попытку, выполните:
echo "Hi this is a test" >> textfile.txt
Сделайте это несколько раз, а затем запустите:
cat textfile.txt
Вы увидите, что ваш текст был добавлен несколько раз в файл textfile.txt.
Ответ 3
Для append
файла используйте >>
echo "hello world" >> read.txt cat read.txt echo "hello siva" >> read.txt cat read.txt
тогда вывод должен быть
hello world # from 1st echo command hello world # from 2nd echo command hello siva
Чтобы overwrite
файл, используйте >
echo "hello tom" > read.txt cat read.txt
тогда выход
hello tom
Ответ 4
Используйте command >> file_to_append_to
для добавления в файл.
Например echo "Hello" >> testFile.txt
ВНИМАНИЕ:, если вы используете только один >
, вы полностью перезапишете содержимое файла. Чтобы этого не произошло, вы можете добавить set -o noclobber
в .bashrc
.
Это гарантирует, что если вы случайно наберете command > file_to_append_to
в существующий файл, он предупредит вас, что файл уже существует. Пример сообщения об ошибке: file exists: testFile.txt
Таким образом, при использовании >
он позволит вам создать новый файл, а не перезаписывать существующий файл.
Ответ 5
Используйте оператор >>
для добавления текста в файл.
Ответ 6
для всего вопроса:
cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
это добавит 720 строк (30 * 24) в файл o.txt и после этого переименует файл на основе текущей даты.
Запускать выше с помощью cron каждый час или
while :
do
cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
sleep 3600
done
Ответ 7
Я предлагаю вам сделать две вещи:
- Используйте
>>
в своей оболочке script для добавления содержимого в определенный файл. Имя файла может быть исправлено или использовать некоторый шаблон. - Настройте часовую крону для запуска оболочки script
Ответ 8
Например, ваш файл содержит:
1. [email protected]:~$ cat output.txt
1
2
EOF
если u хотите добавить в конец файла, затем ---- > запомнить пробелы между 'text' → 'filename'
2. [email protected]:~$ echo somthing to append >> output.txt|cat output.txt
1
2
EOF
somthing to append
И для перезаписи содержимого файла:
3. [email protected]:~$ echo 'somthing new to write' > output.tx|cat output.tx
somthing new to write
Ответ 9
Я бы использовал printf вместо echo, потому что он более надежен и правильно обрабатывает форматирование, например, новую строку \n
.
Этот пример производит вывод, похожий на echo в предыдущих примерах:
printf "hello world" >> read.txt
cat read.txt
hello world
Однако, если вы в этом примере замените printf на echo, echo будет рассматривать \n как строку, игнорируя намерение
printf "hello\nworld" >> read.txt
cat read.txt
hello
world
Ответ 10
Использование тройника с опцией -a (- -a ppend) позволяет добавлять несколько файлов одновременно, а также использовать sudo (очень полезно при добавлении к защищенным файлам). Кроме того, интересно, если вам нужно использовать другие оболочки кроме bash, так как не все оболочки поддерживают операторы> и >>
echo "hello world" | sudo tee -a output.txt
В этой теме есть хорошие ответы о тройнике