如何使用ls(或其他命令)和grep一起从特定文件中搜索该文件中的某个单词?
示例我有一个文件 - 201503003_315_file.txt,我的目录中还有其他文件。 我只想搜索文件名包含 _315 _ 的文件,并在该文件中搜索单词“SAMPLE”。
希望这是明确的,并提前感谢任何帮助。
答案 0 :(得分:2)
你可以这样做:
ls * _315_* | xargs grep "SAMPLE"
第一部分: ls * _315_*
将仅列出 315 作为文件名的一部分的文件,此文件列表将通过管道传输给grep,扫描每一个并查找“SAMPLE”
<强>更新强>
大卫在下面的评论中提到了一种更简单(实际上更安全)的方法:
grep "SAMPLE" *_315_*.txt
更安全的原因是ls
无法处理特殊字符。
另一种选择,正如Charles Duffy在下面的评论中提到的那样:
printf '%s\0' *_315_* | xargs -0 grep
答案 1 :(得分:-2)
更改到该目录(使用cd dir
)并尝试:
grep SAMPLE *_315_*
如果你真的必须使用ls
和grep
试试这个:
ls *_315_* | xargs grep SAMPLE
然而,第一个例子需要更少的输入......