Você poderia fazer isso com a substituição do processo da seguinte forma:
grep -f <(awk '{print $1 "\n" $3}' filename) otherfile
Isso terá grep
lido seus padrões de um arquivo (o -f
flag), que nesse caso é realmente a saída do processo awk...filename
que imprime os padrões um por linha. Em seguida, o grep procura esses padrões em otherfile
Embora talvez menos eficiente se você realmente quiser fazer isso em um pipeline, você poderia fazer isso com grep
lendo seus padrões de stdin como
awk '{print $1 "\n" $3}' filename | grep -f - otherfile
Editar: vendo a edição da sua pergunta sobre como usar o grep e depois o awk, você pode deixar o awk fazer a correspondência de padrões para você:
grep -Ff <(awk '/pattern/ {print $1 "\n" $3}' <(pdftotext 'filename.pdf' -)) otherfile
ou como um pipeline:
pdftotext 'filename.pdf' - | awk '/pattern/ {print $1 "\n" $3}' | grep -Ff - otherfile