Записывает ли sed в файл или выдает пример вывода?

Записывает ли sed в файл или выдает пример вывода?

при использовании sedс таким файлом

sed 's/a/o' fruits

он выдает необходимый вывод на терминал, но не изменяет содержимое файла. Как мне навсегда изменить файл с помощью вышеуказанной замены?

решение1

Используйте -iпараметр для постоянного изменения файла.

решение2

В общем случае, не стоит. GNU coreutils и некоторые другие версии добавляют -iопцию для редактирования на месте, но она имеет различные реализации и непереносима. Файлы не являются потоками, поэтому sedследует избегать их редактирования с помощью. Опция -ito sedтакже нарушает любые символические ссылки, поскольку она по сути удаляет их и заново создает файл. Используйте edили exдля более разумной альтернативы.

ex -s file << EOF
s/a/o/
w
EOF

решение3

Из страницы руководства sed:

-i[SUFFIX], --in-place[=SUFFIX]

          edit files in place (makes backup if extension supplied)

Связанный контент