Se você precisar grep para foo nos arquivos e estiver usando o bash, você pode usar:
grep foo $(cat s1.txt)
Eu tenho o arquivo de exemplo s1.txt assim:
Sample.log.54
Sample.log.56
Sample.log.57
Sample.log.58
Sample.log.59
Sample.log.110
Sample.log.113
Sample.log.114
Sample.log.115
Sample.log.116
Sample.log.117
Sample.log.118
Sample.log.119
Sample.log.120
Sample.log.121
Sample.log.122
Sample.log.112
Sample.log.123
Sample.log.124
Sample.log.140
Na pasta eu tenho muitos outros arquivos. mas eu preciso grep string particular dos arquivos que estão listados em s1.txt. Eu não deveria ler todos os arquivos que estão presentes na pasta.
Se você precisar grep para foo nos arquivos e estiver usando o bash, você pode usar:
grep foo $(cat s1.txt)
Se cada linha dentro de s1.txt
representar um nome de arquivo e os nomes de arquivo não tiverem caracteres originais:
<s1.txt xargs -d '\n' grep string
Esta pergunta é respondida no estouro de pilha ([ link ).
xargs grep "your pattern" < my-file-list.txt
Espero que isso ajude.
for i in 'cat s1.txt'; do cat $i | grep "your-string-to-search"; done
Tags shell