Надо сделать примерно следующее:
read D1 D2 D3 D4
gawk -v dat1="D1" -v dat2="D2" -v dat3="D3" '{ if($1 == dat1) print $2 \
if($1 == dat2) print $2 }' in_file >> out_file
В Файле in_file примерно:
AAA 123
BBB 546
DDD 908
CCC 543
......
Нужно проверить на совпадениеие D1,D2,D3 с первым полем in_file и ,
если да, то выводится второе поле in_file (123 например).
Например, D1=CCC,D2=AAA,D3=DDD, тогда в out_file:
543
123
908
Сложность в том, что в моем примере первое условие (для dat1)
выполняется, а второе - нет, т.к. $1 уже равно dat1. Вызов gawk
должен выполняться один раз.