从文本文件中存在的列表中读取文件

从文本文件中存在的列表中读取文件

我有这样的示例文件 s1.txt:

  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

在该文件夹中我还有许多其他文件。但我需要从 s1.txt 中列出的文件中 grep 特定字符串。我不应该读取文件夹中存在的所有文件。

答案1

如果你需要 grep在文件中并且正在使用 bash,您可以使用:

grep foo $(cat s1.txt)

答案2

如果其中的每一行s1.txt代表一个文件名并且文件名中没有时髦的字符:

<s1.txt xargs -d '\n' grep string

答案3

这个问题在堆栈溢出上得到了回答([https://stackoverflow.com/questions/14655717/grepping-from-a-text-file-list][1])。

xargs grep "your pattern" < my-file-list.txt

答案4

这将起作用:

for i in `cat s1.txt`; do cat $i | grep "your-string-to-search"; done

相关内容