LINUX.ORG.RU

Получить значение с помощью awk и регулярного выражения

 ,


1

1

Всем привет.

Помогите составить команду. Есть файл со строками в виде:

param1;param2;random text name="param3" random text

Необходимо найти в строке значение param3 в ключе name= с помощью регулярного выражения, которое может и отсутствовать и вывести в виде:

param1;param2;param3

random text - может быть любой длины

Заранее спасибо!

awk '{match($3, /name=(.*)/, a); gsub(/"/, "", a[1]); split($1, b, ";"); OFS=";"; print (b[1],b[2],a[1])}'

match - разбирает на группы, в данном случае будет 1 группа a[1]

gsub - замена, в данном случае удаляет кавычки

split - разбиение по разделителю

CaHbl4 ()