当前位置:  开发笔记 > 编程语言 > 正文

使用文件中的行作为grep的文件名?

如何解决《使用文件中的行作为grep的文件名?》经验,为你挑选了1个好方法。

我有一个文件,其中包含文件名(以及它们的完整路径),我想在所有文件中搜索一个单词.一些伪代码来解释:

grep keyword 

要么

cat files.txt > grep keyword
cat files txt | grep keyword

问题是我只能通过grep来搜索文件名,而不是实际文件的内容.



1> DevSolar..:
cat files.txt | xargs grep keyword

要么

grep keyword `cat files.txt`

或(相当于以前但更难以阅读)

grep keyword $(cat files.txt)

应该做的伎俩.

陷阱:

如果files.txt包含带空格的文件名,则任何一种解决方案都会出现故障,因为"这是一个filename.txt"将被解释为四个文件,"This","is","a"和"filename.txt".你不应该在你的文件名中有空格的一个很好的理由.

有很多方法,但没有一个是微不足道的.(找到... -print0/xargs -0就是其中之一.)

第二个(cat)版本可能会导致命令行很长(超出环境限制时可能会失败).第一个(xargs)版本自动处理长输入; xargs提供了几个控制细节的选项.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有