ENTRADA:
Select ASDF 325 sdfg sdflk lk
Select TRG 46sdg rasdftz fsgs 45
Select ASDF 6ffg sdfg 4456 sdrg
SALIDA:
Select ASDF 325 XXXX sdflk lk
Select TRG 46sdg rasdftz fsgs 45
Select ASDF 6ffg XXXX 4456 sdrg
En resumen, necesito "sed" "sdfg" a "XXXX".
PERO: solo en líneas que contienen la cadena "Seleccionar ASDF". ¿Cómo puedo hacer esto? (sed, awk, etc.: \)
g
después del último=
(al final dels
comando). Será así:sed '/Select ASDF/ s=sdfg=XXXX=g'
Si solo está cambiando la columna 4 si tiene el valor exacto, entonces usar operadores de igualdad en lugar de expresiones regulares tiene sentido.
fuente
Utilizando
GNU awk
:Salida:
ACTUALIZACIÓN : Evite
IGNORECASE
para un no GNUawk
, y coincida con mayúsculas y minúsculas. Gracias a jw013 , quien señaló ese detalle:fuente
IGNORECASE
es una extensiónawk
/ GNUgawk
.ASDF