при использовании sed
с таким файлом
sed 's/a/o' fruits
он выдает необходимый вывод на терминал, но не изменяет содержимое файла. Как мне навсегда изменить файл с помощью вышеуказанной замены?
решение1
Используйте -i
параметр для постоянного изменения файла.
решение2
В общем случае, не стоит. GNU coreutils и некоторые другие версии добавляют -i
опцию для редактирования на месте, но она имеет различные реализации и непереносима. Файлы не являются потоками, поэтому sed
следует избегать их редактирования с помощью. Опция -i
to 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)