Сед для частичной замены? - PullRequest
1 голос
/ 19 июля 2011

Представьте, что у меня есть файл со строкой следующего типа:

FIXED_DATA1 VARIABLE_DATA FIXED_DATA2

Я хочу изменить фиксированные данные и оставить переменные данные как есть. По разным причинам использование двух операций sed для замены фиксированных данных не будет работать. Например, фиксированные поля могут быть двойными кавычками, а в строке есть другие области, содержащие их, поэтому на самом деле регулярное выражение записывается для сопоставления с шаблоном в переменных данных и фиксированных данных.

Если я собираюсь использовать sed, есть ли способ изменить оба фиксированных поля данных одновременно, оставив поле переменной без изменений?

Спасибо.

1 Ответ

4 голосов
/ 19 июля 2011

Вам нужно разделить линию на три части, заменить две внешних и оставить середину в покое:

sed 's/^FIX1 \(.*\) FIX2$/New \1 End/'

Вы можете сделать начало и конец матчей более сложными, если это необходимо.

...