Editar um arquivo via Shell SCript [RESOLVIDO]

1. Editar um arquivo via Shell SCript [RESOLVIDO]

Carlos Cesar
ccsar

(usa CentOS)

Enviado em 03/04/2017 - 13:29h

Pessoal.
Por vezes necessito editar uma linha de arquivos e as vezes inserir outras linhas. O fato é que vou distribuir essas modificações para usuários pouco experientes, então gostaria que eles apenas rodassem um script e as edições (modificações) já seriam feitas.
Ex:
No arquivo "selinux" preciso alterar de "SELINUX=enforcing" para "SELINUX=disabled"
No arquivo sysctl.conf necessito adicionar quatro linhas no final do arquivo.

net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
kernel.printk = 3 4 1 3
net.ipv4.ipfrag_max_dist = 0

- Basicamente "editar" e salvar os arquivos. Tem como fazer isso via scripts, pois são 25 máquinas que estão espalhadas´, longe uma das outras, então pensei em um script para essas modificações.

- Se alguém souber fazer isso no shell para criar algo do tipo "modifica.sh" é tudo que eu preciso.

Obrgado.


  


2. MELHOR RESPOSTA

Valdeir Psr
ValdeirPsr

(usa Ubuntu)

Enviado em 03/04/2017 - 13:50h

Para substituir o conteúdo de um arquivo você pode utilizar.

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' file.txt
/* A depender do caso você pode utilizar regex */


https://linux.die.net/man/1/sed

E para adicionar basta usar
echo "whatever" >> file.txt 


3. Re: Editar um arquivo via Shell SCript [RESOLVIDO]

Carlos Cesar
ccsar

(usa CentOS)

Enviado em 03/04/2017 - 13:53h

Vou tentar agora e já postou o resultado.
Obrigado. ;-)



4. Re: Editar um arquivo via Shell SCript [RESOLVIDO]

Carlos Cesar
ccsar

(usa CentOS)

Enviado em 03/04/2017 - 14:25h

O comando "sed" funcionou perfeitamente. Era isso mesmo.

Já o "whatever" não funcionou. Estou usando CentOS 6.8 e acho que ele não tem esse comando.

ccsar


5. Re: Editar um arquivo via Shell SCript [RESOLVIDO]

Carlos Cesar
ccsar

(usa CentOS)

Enviado em 03/04/2017 - 15:53h

ValdeirPsr escreveu:

Para substituir o conteúdo de um arquivo você pode utilizar.

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' file.txt
/* A depender do caso você pode utilizar regex */


https://linux.die.net/man/1/sed

E para adicionar basta usar
echo "whatever" >> file.txt 


Ola.

Desculpe a minha ignorância, agora já entendi a sintaxe do comando....
Bastou colocar dentro das aspas " " o conteúdo e direcionar para o arquivo.
Ex:
echo "net.ipv4.conf.all.rp_filter = 0" >> /etc/sysctl.conf

Esta é a primeira das quatro linhas, o resto segue o mesmo padrão.

Valeu.
Tudo resolvido.
Obrigado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts