Как получить остаток шаблона, используя любую команду linux? - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь обновить файл и выполняю некоторые преобразования, используя любой инструмент linux.

Например, здесь я пытаюсь использовать awk.

Было бы здорово узнать как получить остальную часть шаблона?

awk -F '/' '{print $1"/raw"$2}' <<< "string1/string2/string3/string4/string5"
string1,rawstring2

здесь я не знаю, сколько там "/", и я хочу получить вывод:

string1/rawstring2/string3/string4/string5

Ответы [ 2 ]

4 голосов
/ 05 апреля 2020

Что-то вроде

awk -F/ -v OFS=/ '{ $2 = "raw" $2 } 1' <<< "string1/string2/string3/string4/string5"

Просто измените нужное поле и распечатайте измененную строку (необходимо установить OFS, чтобы он использовал sla sh вместо пробела для разделения полей на выходе и шаблон 1 использует действие печати по умолчанию $0. Это идиома, которую вы часто увидите с awk.)

0 голосов
/ 05 апреля 2020

Также возможно с sed:

sed -E 's|([^/]*/)|\1raw|' <<< "string1/string2/string3/string4/string5"

\1 в строке замены воспроизводит бит внутри скобки и добавляет raw к нему.

Эквивалентно

sed 's|\([^/]*/\)|\1raw|' <<< "string1/string2/string3/string4/string5"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...