Могу ли я получить один символ из «sed»? - PullRequest
0 голосов
/ 06 июля 2018

Можно ли с помощью команды sed выполнять внутренние строковые команды? в этом случае фактические строки:

s/9G /9F6 09999F7 09999F8 09999F9 09999G /g
s/0G /0F6 09999F7 09999F8 09999F9 09999G /g

Число можно установить с помощью [09], но я не знал, смогу ли я извлечь его из, скажем, & и использовать его до F6 примерно так:

s/[09]G /(&:0:1)F6 09999F7 09999F8 09999F9 09999G /g

Кстати, этот код не работает.

1 Ответ

0 голосов
/ 06 июля 2018

Вы ищете так называемое подвыражение в форме \(SUB_PATTERN\):

sed 's/\([09]\)G /\1F6 09999F7 09999F8 09999F9 09999G /g' file

С man sed:

s/regexp/replacement/ Попытайтесь сопоставить регулярное выражение с пространством шаблона. В случае успеха замените ту часть, которая соответствует замене. Замена может содержать специальный символ & для обозначения той части пространства шаблона, которая соответствует и специальные экранированные символы от \ 1 до \ 9 ссылаются на соответствующие совпадающие подвыражения в регулярном выражении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...