awk имеет функцию getline var, которую я часто использую для извлечения строк файла, в котором определенный столбец (второй в приведенном ниже примере) соответствует строкам другого файла:awk getcolumn var вместо getline var
awk 'BEGIN {while(getline each_line < "patterns_file.txt") my_patterns[each_line]} $2 in my_patterns' file_to_search.txt
вместо как я могу получить только указанный столбец из patterns_file.txt в my_patterns массив, если он имеет более чем один столбец, и мне нужно только определенный столбец для сопоставления (скажем, четвёртом), что-то вроде:
awk 'BEGIN {while(getcolumn each_4th_column < "patterns_file.txt") my_patterns[each_4th_column]} $2 in my_patterns' file_to_search.txt
'getline' * иногда * решение, не всегда (см. Интересную статью по этому поводу Эд Мортон] (http://awk.freeshell.org/AllAboutGetline)). Поэтому вам лучше разместить некоторые вводные, выходные и четкие пояснения о том, какова ваша конечная цель, поскольку это может быть сделано по-другому. – fedorqui