Tente este. Altere o comando "echo" para cp ou mv após o teste:
for f in samples.txt ; do
echo /source/path/*$(cut -d '|' -f 5,2 $f | tr '|'a-z '_'A-Z)*.pdf /destination/path
done
Me desculpe, meu mal. Obrigado @Kusalananda. Por favor, considere a resposta acima errada e tente esta em vez disso. Supondo que você esteja filtrando nas colunas 5 e 4, ele copia arquivos de / src para / dst:
awk -F "|" '{system("cp /src/*"toupper($5)"_"$4"*.pdf /dst")}' samples.txt