Здесь решение bash
while read pattern; do
column1=$(cut -d " " -f1 subject.tsv | grep "$pattern")
allcolumns=$(echo "$pattern $(grep $column1 subject.tsv)")
echo $allcolumns | cut -d " " -f1,4
done < query.txt
объяснение
Читать все строки query.txt
while read pattern; do
...
done < query.txt
Найти шаблон поиска в столбце1
while read pattern; do
column1=$(cut -d " " -f1 subject.tsv | grep "$pattern")
echo $column1
done < query.txt
output
pumpkinhead
kiwifruit
Объединить шаблон из query.txt с совпадениями из subject.tsv
while read pattern; do
column1=$(cut -d " " -f1 subject.tsv | grep "$pattern")
allcolumns=$(echo "$pattern $(grep $column1 subject.tsv)")
echo $allcolumns
done < query.txt
output
pumpkin pumpkinhead something orange
kiwi kiwifruit something green
Извлечьfirst последнее поле слияния
echo $allcolumns | cut -d " " -f1,4
output
pumpkin orange
kiwi green