AWK скрипт для поиска строки на основе шаблона и поиска соответствующих ей строк в столбце
Эксперты,
Нужна ваша поддержка для этого awk-скрипта. у нас есть только один входной файл, все эти столбцы 1 и 2 находятся в одном файле и должны выполнять поиск значений в одном файле(столбец 1 и столбец 2), но вывод нам нужен в другом файле
Нужно grep строку, строка которой содержит 9K в столбце 1, а затем grep соответствующую ей строку в столбце 2. Предположим, проверьте 9K1, затем grep A1, проверьте A1 в столбце 1, если нет, выведите результат, как показано ниже ожидаемого выходного файла
Затем снова проверьте наличие 9K1, grep A2, найдите A2 в столбце 1, Если найдено grep его соответствующее значение строки B2.
Теперь проверьте значение B2 в столбце 1, а затем grep для C2 вместо A2, как мы уже рассматривали ранее в lookup. Теперь найдите C2 в столбце и grep D2 вместо B2
Это необходимо проверить для всех строк в столбце 1, содержащих 9K, так как в столбце 1 могут быть строки со значением 9K2, 9K3, 9K4 с соответствующими данными в столбце 2
Входной файл :
9K1,A1 9K1,A2 9K1,A3 9K1,A4 9K1,A5 A2,B2 B2,A2 B2,C2 C2,B2 C2,D2 A5,B5 B5,C5 B5,A5 9K1,A6 A6,B6 B6,A6 B6,C6
Ниже приведен требуемый и ожидаемый вывод, который необходим(другой файл) :
9K1,A1 9K1,A2,B2,C2,D2 9K1,A3 9K1,A4 9K1,A5,B5,C5 9K1,A6,B6,C6
Вывод, возвращаемый приведенным выше кодом: (что не соответствует ожиданиям)
9K1,A3 9K1,A4 9K1,A5 9K1,A6,B6,C6
Что я уже пробовал:
awk ' NR==FNR{ assoc[$1]=$2 next } (FNR!=1)&&($1~/9K/){ printf "%s,%s", $1,$2 seen[$1]; seen[$2] search=$2 while((search in assoc) && !(assoc[search] in seen)){ search=assoc[search] printf ",%s", search seen[search] } print "" for(var in seen){ delete seen[var] } }' input.csv input.csv > output.csv