Substituir uma determinada linha [RESOLVIDO]

1. Substituir uma determinada linha [RESOLVIDO]

Rodrigo
ribeirrs

(usa Debian)

Enviado em 07/04/2016 - 22:37h

Pessoal, boa noite!

Preciso acrescentar uma sigla ao final de todas as linhas que contenha DEVICE=eth0:?(número das interfaces) de todas minhas interfaces de rede em /etc/sysconfig/network-scripts/ifcfg-etho*. Poderiam me ajudar?

Exemplo de como deverá ficar minhas interfaces:

DEVICE=eth0TESTE
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

DEVICE=eth0:1TESTE
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

DEVICE=eth0:2TESTE
BOOTPROTO=static
IPADDR=192.168.1.3
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet




  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/04/2016 - 00:27h

sed -r 's/(eth.*$)/\1TESTE/g'

Fiz no olhômetro.
Teste para ver se serve.

----------------------------------------------------------------------------------------------------------------
# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


3. Re: Substituir uma determinada linha [RESOLVIDO]

Ronaldo Ferreira de Lima
textmode

(usa Slackware)

Enviado em 08/04/2016 - 00:19h

Se for usar shell, faça um looping iterando por cada linha e se tiver o padrão que procura, faça o echo imprimir a sigla ao final.
Se for usar awk, não precisa do looping porque já é padrão, então só é testar o padrão e imprimir.
Se for usar sed, o comando "s" é suficiente. Pode até usar a opção "-i" para já editar in place.


4. Re: Substituir uma determinada linha

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 08/04/2016 - 01:08h

ribeirrs escreveu:

Pessoal, boa noite!

Preciso acrescentar uma sigla ao final de todas as linhas que contenha DEVICE=eth0:?(número das interfaces) de todas minhas interfaces de rede em /etc/sysconfig/network-scripts/ifcfg-etho*. Poderiam me ajudar?

Exemplo de como deverá ficar minhas interfaces:

DEVICE=eth0TESTE
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

DEVICE=eth0:1TESTE
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

DEVICE=eth0:2TESTE
BOOTPROTO=static
IPADDR=192.168.1.3
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

Boa noite, ribeirrs.
Segue uma sugestão:

awk -F"\n" 'BEGIN {RS="\n\n";OFS="\n";} { print $1":"NR-1"TESTE",$2,$3,$4,$5,$6"\n"}' devices.txt

SAíDA:

DEVICE=eth0:1TESTE
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

DEVICE=eth0:2TESTE
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

DEVICE=eth0:3TESTE
BOOTPROTO=static
IPADDR=192.168.1.3
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet


cat devices.txt

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.3
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet


----------------------------------------------------------------------------------------
Se a resposta foi satisfatória, marque-a como a MELHOR, dessa forma, ganho uns pontos.
Isso, incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :)
----------------------------------------------------------------------------------------
Att.:
Marcelo



5. Re: Substituir uma determinada linha [RESOLVIDO]

Rodrigo
ribeirrs

(usa Debian)

Enviado em 10/04/2016 - 13:56h

listeiro_037 muito obrigado! Funcionou perfeitamente!


6. Re: Substituir uma determinada linha [RESOLVIDO]

Rodrigo
ribeirrs

(usa Debian)

Enviado em 10/04/2016 - 14:04h

msoliver escreveu:

ribeirrs escreveu:

Pessoal, boa noite!

Preciso acrescentar uma sigla ao final de todas as linhas que contenha DEVICE=eth0:?(número das interfaces) de todas minhas interfaces de rede em /etc/sysconfig/network-scripts/ifcfg-etho*. Poderiam me ajudar?

Exemplo de como deverá ficar minhas interfaces:

DEVICE=eth0TESTE
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

DEVICE=eth0:1TESTE
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

DEVICE=eth0:2TESTE
BOOTPROTO=static
IPADDR=192.168.1.3
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

Boa noite, ribeirrs.
Segue uma sugestão:

awk -F"\n" 'BEGIN {RS="\n\n";OFS="\n";} { print $1":"NR-1"TESTE",$2,$3,$4,$5,$6"\n"}' devices.txt

SAíDA:

DEVICE=eth0:1TESTE
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

DEVICE=eth0:2TESTE
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

DEVICE=eth0:3TESTE
BOOTPROTO=static
IPADDR=192.168.1.3
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet


cat devices.txt

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.3
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Ethernet


----------------------------------------------------------------------------------------
Se a resposta foi satisfatória, marque-a como a MELHOR, dessa forma, ganho uns pontos.
Isso, incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :)
----------------------------------------------------------------------------------------
Att.:
Marcelo



Marcelo, muito obrigado!

Deu mais ou menos certo, pois quando o DEVICE não estava na mesma linha em outras iterfaces, ele acrescentou o TESTE ao final de uma linha que não era a do DEVICE.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts