【发布时间】:2012-04-12 17:21:33
【问题描述】:
假设我有一个这样的文件集合:
echo -e "apple\n cherry" >> f1.txt;
echo -e "grape\n strawberry" >> f2.txt;
echo -e "orange\n cherry" >> f3.txt;
我想找到每个包含“樱桃”一词的文件。我可以这样做:
ls *.txt | xargs cat | grep cherry
但这只是返回从 f1 和 f3 匹配的两行,而不显示“源”文件,如下所示:
cherry
cherry
我想查看这些匹配项来自的文件——像这样:
f1.txt -> cherry
f3.txt -> cherry
有没有办法简单地从命令行做到这一点?
【问题讨论】:
-
等等...你在研究你得到的答案吗? :^)
-
小世界!顺便说一句,你帮助我们的论文被 AAAI 接受了——结果非常好。这是链接:aaai.org/ocs/index.php/WS/AAAIW11/paper/view/3983
-
哦 - 这不是一项研究 - 我真的需要知道答案。
-
谢谢,准备把它添加到我的简历中!
-
没有人再阅读手册页了吗?
:)这些年来,你是如何vi-ing 多个包含匹配项的文件的?vi $(grep -l foo *.txt)。 :)
标签: shell command-line grep