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

306

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

Теги:

8 ответов

431

Используйте >> вместо > при перенаправлении вывода в файл:

your_command >> file_to_append_to

Если file_to_append_to не существует, он будет создан.

Пример:

$ echo "hello" > file
$ echo "world" >> file
$ cat file 
hello
world
  • 2
    Проблема в том, что echo удаляет символы новой строки из строки. Как вы добавляете в файл строку, которая содержит переводы строки?
  • 5
    @TimothySwan, я полагаю, с опцией -e.
66

Вы можете использовать оператор → . Это добавит данные из команды в конец текстового файла.

Чтобы протестировать эту попытку, выполните:

echo "Hi this is a test" >> textfile.txt

Сделайте это несколько раз, а затем запустите:

cat textfile.txt

Вы увидите, что ваш текст был добавлен несколько раз в файл textfile.txt.

32

Для 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

26

Используйте command >> file_to_append_to для добавления в файл.

Например echo "Hello" >> testFile.txt

ВНИМАНИЕ:, если вы используете только один >, вы полностью перезапишете содержимое файла. Чтобы этого не произошло, вы можете добавить set -o noclobber в .bashrc.

Это гарантирует, что если вы случайно наберете command > file_to_append_to в существующий файл, он предупредит вас, что файл уже существует. Пример сообщения об ошибке: file exists: testFile.txt

Таким образом, при использовании > он позволит вам создать новый файл, а не перезаписывать существующий файл.

19

Используйте оператор >> для добавления текста в файл.

13

для всего вопроса:

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

Например, ваш файл содержит:

 1.  mangesh@001:~$ cat output.txt
    1
    2
    EOF

если u хотите добавить в конец файла, затем ---- > запомнить пробелы между 'text' → 'filename'

  2. mangesh@001:~$ echo somthing to append >> output.txt|cat output.txt 
    1
    2
    EOF
    somthing to append

И для перезаписи содержимого файла:

  3.  mangesh@001:~$ echo 'somthing new to write' > output.tx|cat output.tx
    somthing new to write
  • 0
    Это вводит в заблуждение во многих деталях. Пробелы не важны, и передача пустого вывода в cat ... просто совершенно дурацкая. (Он пуст, потому что вы просто перенаправили стандартный вывод в файл.)
7

Я предлагаю вам сделать две вещи:

  • Используйте >> в своей оболочке script для добавления содержимого в определенный файл. Имя файла может быть исправлено или использовать некоторый шаблон.
  • Настройте часовую крону для запуска оболочки script

Ещё вопросы

Сообщество Overcoder
Наверх
Меню