Eu faria:
grep -oP '(?<=Some problem with file named ).*pdf(?=\.)' \
/home/myname/log/myspecificlogfile.log | awk -F / '
ARGIND == 1 {files[$0]; next}
$NF in files' - RS='grep -oP '(?<=Some problem with file named ).*pdf(?=\.)' \
/home/myname/log/myspecificlogfile.log | awk -F / '
ARGIND == 1 {files[$0]; next}
$NF in files' - RS='%pre%' <(
find /home/myname/workfolders/ -name '*pdf' -type f -print0)
' <(
find /home/myname/workfolders/ -name '*pdf' -type f -print0)
(assume a implementação GNU de grep
e awk
e um shell com suporte para substituição de processo como ksh
, zsh
ou bash
).
Usar find
-name
não seria ideal para nomes de arquivos *.pdf
ou ?.pdf
, por exemplo. Executar um find
por nome de arquivo seria ineficiente. Mesmo que você tenha feito uma solução que chame um find
com -name a.pdf -o -name b.pdf...
, isso provavelmente ainda será menos eficiente do que uma pesquisa de hash como feita por awk
.