Ввод многострочной команды awk в a для l oop без печати переменной - PullRequest
0 голосов
/ 01 февраля 2020

У меня есть следующая команда, которая берет строки из файла Allergens , основываясь на строках из файла IDs .

awk '
    FNR==NR{
    a[$1]
    next
    }
    /^Query/ || $2 in a
    ' IDs C100_Allergens | grep -B 1 'Hit: ' | grep -v '^--'  > C100_Allergens_matches.txt

Однако у меня есть множество sample_Allergens файлов, и я хочу запустить его в al oop как таковом, где list - это файл с другим примером Имена:

for i in `cat list`
do
    awk '
    FNR==NR{
    a[$1]
    next
    }
    /^Query/ || $2 in a
    ' IDs "$i"_Allergens | grep -B 1 'Hit: ' | grep -v '^--'  > "$i"_Allergens_matches.txt
done

Я пробовал это l oop, включая использование флага переменной для awk, т.е. -vi = "$ i":

for i in `cat list`
    do
        awk -v i="$i" '
        FNR==NR{
        a[$1]
        next
        }
        /^Query/ || $2 in a
        ' IDs "$i"_Allergens | grep -B 1 'Hit: ' | grep -v '^--'  > "$i"_Allergens_matches.txt
    done

Я только продолжаю становиться пустым файлы. Заранее спасибо за помощь!

...