EINGANG:
Select ASDF 325 sdfg sdflk lk
Select TRG 46sdg rasdftz fsgs 45
Select ASDF 6ffg sdfg 4456 sdrg
AUSGABE:
Select ASDF 325 XXXX sdflk lk
Select TRG 46sdg rasdftz fsgs 45
Select ASDF 6ffg XXXX 4456 sdrg
Kurz gesagt, ich muss "sdfg" auf "XXXX" setzen.
ABER: nur in Zeilen, die den String "Select ASDF" enthalten. Wie kann ich das machen? (sed, awk, etc.: \)
g
nach dem letzten=
(am Ende dess
Befehls) eingeben. Es wird so sein:sed '/Select ASDF/ s=sdfg=XXXX=g'
Wenn Sie Spalte 4 nur ändern, wenn sie den genauen Wert hat, ist die Verwendung von Gleichheitsoperatoren anstelle von regulären Ausdrücken sinnvoll.
quelle
Verwenden von
GNU awk
:Ausgabe:
UPDATE : Vermeiden Sie
IGNORECASE
für ein nicht-GNUawk
und Match case-sensitive. Vielen Dank an jw013 , der auf dieses Detail hingewiesen hat:quelle
IGNORECASE
ist eine GNUawk
/gawk
Erweiterung.ASDF