Я наткнулся на себя, пытаясь добиться, казалось бы, простой вещи. У меня есть один файл и один список строк с разделителями строк.Сравнить файл с переменным списком AWK
Файл:
DAT1 LOC1
dat2 LOC1
Dat3 LOC1
Dat4 LOC2
Dat5 LOC2
Мой список что-то вроде этого:
DAT1
dat2
Dat3
Dat4
То, что я пытаюсь сделать, это сравнить список с файлом данных и подсчитайте количество уникальных Locs, которые появляются. Меня интересует только самый большой подсчет. В приведенном выше примере, при сравнении списка в файл, я хочу по существу:
DAT1 MATCHED Loc1Count = 1
dat2 MATCHED Loc1Count = 2
Dat3 MATCHED Loc1Count = 3
Dat4 MATCHED Loc2Count = 1
Возврат: LOC1 если Loc1Count/Длина списка> 50%
Теперь
Я знаю, что AWK 1 файл будет читать файл строка за строкой. Кроме того, я знаю, что «echo» $ LIST «| awk»/поиск строки, содержащей этот/», вернет строку, соответствующую этой внутренней строке. Я не смог успешно объединить эти идеи, хотя вложенные awks, а тем более как считать «loc1» vs «loc2» (которые, кстати, будут случайными строками, а не стандартными)
Я чувствую, что это просто, но я ударяю головой о стену. Есть идеи? Является ли это достаточно ясным?
Функция вы ищете (как показано на ** ghostdog74 х ** ответ) называется ассоциативные массивы. –