Pular para o conteúdo

Substituir uma determinada linha [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Substituir uma determinada linha [RESOLVIDO]

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


Responder tópico

2. Re: Substituir uma determinada linha [RESOLVIDO]

Melhor resposta

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]

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

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]

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

listeiro_037 muito obrigado! Funcionou perfeitamente!

6. Re: Substituir uma determinada linha [RESOLVIDO]

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.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder