Как добавить вывод в конец текстового файла

Как добавить вывод команды в конец текстового файла?

Ответ 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

В этой теме есть хорошие ответы о тройнике