substituição inline sed e sem ter que criar um arquivo [fechado]

1

Estou tentando fazer uma substituição inline em um arquivo de configuração depois de desdobrar esse arquivo. Eu olhei na documentação do sed, mas não consigo trabalhar. Mesmo com -e Por agora eu mv no arquivo .back e depois sed para o arquivo, terminando por rm o arquivo. Tenho certeza de que há uma maneira mais fácil de fazer isso, mas não consigo trabalhar.

Obrigado

arquivo mv file.conf seds / string / otherstring / file.back > file.conf rm file.back

    
por Kangt_qc 28.08.2013 / 14:47

1 resposta

6

Se você precisar modificar o conteúdo dos arquivos instantaneamente, poderá usar o sed -e 's/your/expression/g' -i filename . Você pode adicionar um -i.bak para fazer o backup do arquivo original antes que qualquer alteração ocorra.

Adicionando, esse sed é um editor de fluxo e você deve usar ed ou ex .

Exemplo de atualização:

[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

Veja como -i.bak cria um arquivo de backup automaticamente para nos proteger contra a substituição do arquivo por acidente.

Veja lin link para exemplos usando o editor ed .

    
por 28.08.2013 / 14:53

Tags