ВХОД:
Select ASDF 325 sdfg sdflk lk
Select TRG 46sdg rasdftz fsgs 45
Select ASDF 6ffg sdfg 4456 sdrg
ВЫХОД:
Select ASDF 325 XXXX sdflk lk
Select TRG 46sdg rasdftz fsgs 45
Select ASDF 6ffg XXXX 4456 sdrg
Короче говоря, мне нужно "sed" "sdfg" в "XXXX".
НО: только в строках, которые содержат строку «Выбрать ASDF». Как я могу это сделать? (sed, awk и т. д. \)
g
после последней=
(в концеs
команды). Будет так:sed '/Select ASDF/ s=sdfg=XXXX=g'
Если вы изменяете только столбец 4, если он имеет точное значение, тогда имеет смысл использовать операторы равенства вместо регулярных выражений.
источник
Использование
GNU awk
:Выход:
ОБНОВЛЕНИЕ : Избегайте
IGNORECASE
для не-GNUawk
и совпадать с учетом регистра. Спасибо jw013 , который указал на эту деталь:источник
IGNORECASE
, это GNUawk
/gawk
расширение.ASDF