Eu tenho o seguinte arquivo:
linuxA.mtt.corp
linux3V
linux4B
linux2A
linux5v.mtt.corp
como adicionar o .mtt.corp
em cada string que não possui essa palavra?
Responder1
É bem simples com sed
:
sed -e '/\.mtt\.corp$/!s/$/.mtt.corp/' <file
Isso s
substitui o fim da linha por .mtt.corp
cada linha que não termina com essa string.
Responder2
Uma solução Perl:
$ perl -lpe '$_ .= ".mtt.corp" if !/\.mtt\.corp$/' file
linuxA.mtt.corp
linux3V.mtt.corp
linux4B.mtt.corp
linux2A.mtt.corp
linux5v.mtt.corp
Faz -p
imprimir perl
cada linha do arquivo de entrada após aplicar o script fornecido por -e
e -l
remove novas linhas finais de cada linha de entrada e adiciona uma a cada print
chamada. A $_
variável é a linha atual. Portanto, isso será adicionado mtt.corp
à linha se ainda não corresponder.
Uma solução estranha:
$ awk '!/\.mtt\.corp$/{$0=$0".mtt.corp"}1;' file
linuxA.mtt.corp
linux3V.mtt.corp
linux4B.mtt.corp
linux2A.mtt.corp
linux5v.mtt.corp
A mesma ideia. .mtt.corp
é adicionado a quaisquer linhas ( $0
) que não terminem com ele e cada linha é impressa ( 1;
).