Команда Sed / awk для замены шаблона при сохранении пробелов - PullRequest
1 голос
/ 01 мая 2020

В моем каталоге несколько файлов, в которых есть строка с шаблоном, подобным следующему:

.declare  trading_name__w       a22
.declare  trading_name__w  a22
.declare  trading_name__w             a22

Я хочу заменить слово a22 на a40, сохраняя интервал между словами согласованным (так как они находятся в исходном файле).

Я пробовал с этой командой:

sed 's/trading_name__w\([^%]\+\)a22/trading_name__w\([^%]\+\)a40/g' filename

, но мешает интервал между словами:

.declare  trading_name__w([^%]+)a40

Как я могу сделать это с помощью Sed или awk?

1 Ответ

1 голос
/ 01 мая 2020

Вы должны использовать \1 в строке замены, чтобы скопировать группу захвата.

sed 's/trading_name__w\([^%]\+\)a22/trading_name__w\1a40/g' filename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...