Curlies.
Для записи, это для GNU sed , который вы используете.Для других версий / переносимости замените точки с запятой символами новой строки.
Также /pattern1,pattern2/
ищет буквально "pattern1, pattern2" только как одну строку.
Если я правильно прочитал, выхотите сделать некоторые замены в строках, которые имеют pattern1
и pattern2
, хотя не обязательно в любом относительном размещении.В этом случае:
sed '
/pattern1/ {
/pattern2/ {
s/string1/replace1/g;
s/string2/replace2/g;
}
}
' file
Я разложил его для удобства чтения, но вы могли бы разбить все обратно в одну строку, если бы вы действительно этого хотели.
Если вы знаете pattern1
всегда перед pattern2
, тогда вы можете использовать
sed '/pattern1.*pattern2/ {
s/string1/replace1/g; s/string2/replace2/g;
}' file
Но если они могут быть в обратном порядке, используйте первые sed
.
Также ... возможномы могли бы получить образец файла для проверки?Они просто напечатаны на манжете, но если бы вы предоставили пример данных, я бы на самом деле использовал их для проверки их перед отправкой чего-то, что могло бы иметь опечатку или логическую ошибку.Просто предложение.Люди с большей вероятностью будут внимательны, если вы не заставите их собрать все кусочки, смеется