Alterar o conteúdo de um arquivo do terminal

0

Como posso alterar o conteúdo de um arquivo do terminal? Eu não quero usar qualquer aplicativo como um editor de texto, já que eu quero usá-lo para um script.

Para dar um exemplo, quero transformar o arquivo /etc/apache2/mods-enabled/dir.conf deste

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

para isso

<IfModule mod_dir.c>
    DirectoryIndex index.php
</IfModule>
    
por Enrique Moreno Tent 03.09.2014 / 17:53

2 respostas

2

Existem várias maneiras de fazer isso, dependendo se você deseja reorganizar os campos nessa segunda linha ou apenas defini-los exatamente como deseja. Aqui está a maneira mais simples de fazer isso:

sed -i.bak -e 's/DirectoryIndex.*/DirectoryIndex index.php/' dir.conf

Isso alterará a linha DirectoryIndex , incluindo tudo após essa palavra, para DirectoryIndex index.php . O -i.bak salva uma cópia de backup do arquivo original em dir.conf.bak . Depois de executar isso, temos:

$ cat dir.conf
<IfModule mod_dir.c>
    DirectoryIndex index.php
</IfModule>

$ cat dir.conf.bak
<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
    
por Mark Plotnick 03.09.2014 / 18:11
2

Você poderia usar

echo content > file

ou se é realmente estático, tenha uma cópia extra do arquivo e copie-o.

    
por Gremlin 03.09.2014 / 17:58