WEJŚCIE:
Select ASDF 325 sdfg sdflk lk
Select TRG 46sdg rasdftz fsgs 45
Select ASDF 6ffg sdfg 4456 sdrg
WYNIK:
Select ASDF 325 XXXX sdflk lk
Select TRG 46sdg rasdftz fsgs 45
Select ASDF 6ffg XXXX 4456 sdrg
Krótko mówiąc, muszę „sed” „sdfg” do „XXXX”.
ALE: tylko w wierszach zawierających ciąg „Wybierz ASDF”. Jak mogę to zrobić? (sed, awk itp.: \)
g
po ostatnim=
(na końcus
polecenia). Będzie to tak:sed '/Select ASDF/ s=sdfg=XXXX=g'
Jeśli zmieniasz tylko kolumnę 4, jeśli ma ona dokładną wartość, zastosowanie operatorów równości zamiast wyrażeń regularnych ma sens.
źródło
Używanie
GNU awk
:Wynik:
AKTUALIZACJA : Unikaj
IGNORECASE
dla nie-GNUawk
i dopasuj wielkość liter. Dzięki jw013 , który wskazał ten szczegół:źródło
IGNORECASE
o GNUawk
/gawk
rozszerzeniu.ASDF