Привет, доброго всем.
Есть файл вида
abc;ghjk;123;5
abc;vbnm;123;10
def;dfghhjk;456;4
def;vbnmvm;456;7
def;adsds;456;5
...
много других таких же строк
Нужно со строками, имеющими одинаковые определенные поля (здесь $1 и $3), делать что нибудь. Например узнать сумму значений их поля $4: Значения полей заранее неизвестны, требуется лишь отобрать строки с одинаковыми определенными полями
abc;123;15
def;456;16
Сейчас я это делаю, ставя одинаковые определенные поля рядом
abc;123;ghjk;5
abc;123;vbnm;10
def;456;dfghhjk;4
def;456;vbnmvm;7
def;456;adsds;5
...
много других таких же строк
, вырезая этот кусок в файл образцов
abc;123
def;456
...
много других таких же строк
и производя такую операцию:
cat файл_с_образцам|while read образец;do grep образец файл_с_полями_рядом|awk -F';' 'сделать что-нибудь с нужным полем' ;done
Я хочу прекратить это безумие. Наверняка можно тем же awk или sed отбирать строки по нужным полям, но я не осилил. Прошу помощи.