Как перезаписать файл с помощью echo?


10

При использовании echo "foo">> bar.txtболее одного раза он добавляется в конец файла. Как переписать bar.txtкаждый раз?


2
Денис ответил правильно. Смотрите man bashи ищите (используя /) раздел «НАПРАВЛЕНИЕ». В частности, подразделы «Перенаправление вывода» и «Добавление перенаправленного вывода».
RedGrittyBrick

Ответы:


28

>для перенаправления в файл (перезаписи), а >>для добавления.

Чтобы перезаписать bar.txt, используйте это:

echo "foo" > bar.txt

1
Чаще всего >упоминается как перенаправление (стандартный вывод в файл), в то время как символ канала |упоминается как трубопровод (стандартный вывод в другой процесс). Вы рискуете сбить с толку таких людей, как я, когда вы называете >«
трубкой

@RedGrittyBrick: Я видел трубопроводы в нескольких книгах (и я говорил это годами), но перенаправление кажется гораздо более распространенным. Спасибо.
Деннис

@Dennis Piping использует канал |для соединения вывода одной программы / команды со входом другой. Относящиеся .
Даниэль Бек

@DanielBeck: я имел в виду, что видел трубопровод в файл . Пример: изучение Windows PowerShell за месяц обедов - передача в файл или на принтер
Деннис,

Обратите внимание, что согласно странице 43, в PowerShell > fooэто просто синтаксический сахар для | Out-File foo, и, следовательно, является формой трубопровода ;-)
Даниэль Бек
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.