Я пытаюсь извлечь две строки из каждой строки, некоторые строки не имеют ни одной строки, некоторые строки имеют одну строку.
Мой ввод input.txt:
ID=MD001;refer=init;loc=tap2
ID=MD002;Name=Jam;refer=init;loc=tap2
ID=MD003;Name=Jane;Value=vip;refer=init;loc=tap2
ID=MD008;Name=George;product=car;vall=some;Value=vim;refer=init;loc=tap2
ID=MD0010;product=cars;Value=vip4;refer=init;loc=tap2
ID=MD0018;product=cars;
...
Я хочу сопоставить строку «Имя» или «Значение» и вывести их в виде:
ID=MD002 Name=Jam
ID=MD003 Name=Jane Value=vip
ID=MD008 Name=George Value=vim
ID=MD0010 Value=vip4
Я пытался:
head input.txt | awk '$1 ~ /Name|Value/ {match($1, /(ID=*);.*(Name*);.*(Value.*)/, name); print name[1] name[2] name[3]}'
Но это действительно печатало что-нибудь. Спасибо за помощь.