Supondo que nenhum nome de arquivo tenha novas linhas nelas ...
Crie uma lista dos " 856
-files" e use grep
para filtrar os que você deseja:
find . -name '*856*' > filelist
grep -Ff fileA.txt filelist >result.txt
O comando grep
usará as sequências em fileA.txt
como padrões e extrairá os nomes de filelist
que correspondem a eles. O -F
flag garantirá que as strings em fileA.txt
sejam interpretadas como strings fixas (não como expressões regulares).
Os padrões em fileA.txt
podem precisar ser mais específicos, por exemplo, prefixando-os com _
e adicionando o sufixo .dat
:
sed -e 's/^/_/' -e 's/$/.dat' fileA.txt >fileB.txt
Você usaria fileB.txt
com o grep
em vez de fileA.txt
.