Назад | Перейти на главную страницу

встроенная замена sed и без создания файла

Я пытаюсь выполнить замену в файле конфигурации после того, как он развернул этот файл. Я просмотрел документацию по sed, но не могу заставить ее работать. Даже с -e Сейчас я mv в файл .back, а затем sed к файлу, заканчивая rm файл. Я уверен, что есть более простой способ сделать это, но он не работает.

Спасибо

mv file.conf file.back sed s / string / anotherstring / file.back> file.conf rm file.back

Если вам нужно мгновенно изменить содержимое файлов, вы можете использовать sed -e 's/your/expression/g' -i filename. Вы можете добавить -i.bak для резервного копирования исходного файла до того, как произойдут какие-либо изменения.

Добавляя, что sed это Редактор потока и вам лучше использовать ed или ex.

Пример обновления:

[val0x00ff@localhost dir1]$ ls
file
[val0x00ff@localhost dir1]$ cat file 
test
anothertest
hangethisLine/g

[val0x00ff@localhost dir1]$ sed -i.bak 's/test/substitute_to_this/g' file 
[val0x00ff@localhost dir1]$ ls -l
total 8
-rw-rw-r-- 1 val0x00ff val0x00ff 62 Aug 28 14:59 file
-rw-rw-r-- 1 val0x00ff val0x00ff 34 Aug 28 14:58 file.bak
[val0x00ff@localhost dir1]$ cat file
substitute_to_this
anothersubstitute_to_this
hangethisLine/g

[val0x00ff@localhost dir1]$ cat file.bak 
test
anothertest
hangethisLine/g

Смотри как -i.bak автоматически создает файл резервной копии, чтобы защитить нас от случайного изменения файла.

См. Лин http://wiki.bash-hackers.org/howto/edit-ed например, используя ed редактор.