Tengo el siguiente archivo:
linuxA.mtt.corp
linux3V
linux4B
linux2A
linux5v.mtt.corp
¿Cómo agregar el .mtt.corp
en cada cadena que no tiene esta palabra?
Respuesta1
Es bastante simple con sed
:
sed -e '/\.mtt\.corp$/!s/$/.mtt.corp/' <file
Eso s
sustituye el final de la línea con .mtt.corp
en cada línea que no termina con esa cadena.
Respuesta2
Una solución Perl:
$ perl -lpe '$_ .= ".mtt.corp" if !/\.mtt\.corp$/' file
linuxA.mtt.corp
linux3V.mtt.corp
linux4B.mtt.corp
linux2A.mtt.corp
linux5v.mtt.corp
Hace -p
que perl
se imprima cada línea del archivo de entrada después de aplicar el script proporcionado por -e
y -l
elimina las nuevas líneas finales de cada línea de entrada y agrega una a cada print
llamada. La $_
variable es la línea actual. Entonces esto se agregará mtt.corp
a la línea si aún no coincide.
Una solución extraña:
$ awk '!/\.mtt\.corp$/{$0=$0".mtt.corp"}1;' file
linuxA.mtt.corp
linux3V.mtt.corp
linux4B.mtt.corp
linux2A.mtt.corp
linux5v.mtt.corp
La misma idea. .mtt.corp
se agrega a cualquier línea ( $0
) que no termine con ella y cada línea se imprime ( 1;
).