Как добавить вывод команды в конец текстового файла?
478
Используйте >>
вместо того, чтобы >
направлять вывод в файл:
your_command >> file_to_append_to
Если file_to_append_to
не существует, он будет создан.
Пример:
$ echo "hello" > file
$ echo "world" >> file
$ cat file
hello
world
echo
удаляет символы новой строки из строки. Как вы добавляете в файл строку, которая содержит переводы строки?Для
append
использования файла>>
тогда вывод должен быть
Для
overwrite
использования файла>
тогда выход
hello tom
источник
Вы можете использовать оператор >>. Это добавит данные из команды в конец текстового файла.
Чтобы проверить это, попробуйте запустить:
Сделайте это пару раз, а затем запустите:
Вы увидите, что ваш текст был добавлен несколько раз в файл textfile.txt.
источник
Используйте
command >> file_to_append_to
для добавления в файл.Например
echo "Hello" >> testFile.txt
ВНИМАНИЕ: если вы используете только один,
>
вы перезапишете содержимое файла. Чтобы этого никогда не происходило, вы можете добавитьset -o noclobber
к своему.bashrc
.Это гарантирует, что если вы случайно наберете
command > file_to_append_to
существующий файл, он предупредит вас, что файл уже существует. Пример сообщения об ошибке:file exists: testFile.txt
Таким образом, при использовании
>
он только позволит вам создать новый файл, а не перезаписать существующий файл.источник
Используйте
>>
оператор для добавления текста в файл.источник
Использование tee с опцией -a (--append) позволяет добавлять несколько файлов одновременно, а также использовать sudo (очень полезно при добавлении к защищенным файлам). Кроме того, интересно, если вам нужно использовать другие оболочки кроме bash, так как не все оболочки поддерживают операторы> и >>
В этой теме есть хорошие ответы о тройнике
источник
на весь вопрос:
это добавит 720 строк (30 * 24) в o.txt и после переименует файл, основываясь на текущей дате.
Запускайте вышеизложенное с помощью cron каждый час, или
источник
Я бы использовал printf вместо echo, потому что он более надежен и
\n
правильно обрабатывает форматирование, например, новую строку .Этот пример производит вывод, похожий на echo в предыдущих примерах:
Однако, если вы в этом примере замените printf на echo, echo будет рассматривать \ n как строку, игнорируя намерение
источник
Я бы посоветовал вам сделать две вещи:
>>
в своем сценарии оболочки, чтобы добавить содержимое к определенному файлу. Имя файла может быть исправлено или с использованием некоторого шаблона.источник
Например, ваш файл содержит:
если вы хотите добавить в конец файла, тогда ----> запомните пробелы между 'text' >> 'filename'
И переписать содержимое файла:
источник
cat
просто ... просто дурацкие. (Он пуст, потому что вы просто перенаправили стандартный вывод в файл.)