在多个文件中搜索多个字符串

2024-09-21 05:46:38 发布

您现在位置:Python中文网/ 问答频道 /正文

{1{1>在一个给定的cdi}目录中搜索^或cdi>的所有行。搜索必须是递归的。在

如果搜索结果能与正则表达式匹配,那就更好了。结果是messages.txt的每一行都是foo=bar的形式,我只对foo感兴趣,所以我需要忽略每一行的=bar。(通过准备一个新的messages.txt可以很容易地克服这个问题,但是如果已经有这样的特性,那就更好了)。在

我在这里的选择是Python(因为我喜欢)和{}(因为我正在努力学习)。我可以很容易地想出一个Python脚本,所以如果你用Python给出一个解决方案,如果它是用python的方式来实现的话,那就太好了。然而,我更喜欢bash-我希望sedgrepfind和{}(不一定都是)的混合物可以做到这一点。在

谢谢


Tags: 目录txt脚本bashfoo方式bar特性
2条回答

只需使用fgrep:

fgrep -rlf messages.txt dir

或者grep-f

^{pr2}$

如果要搜索regex,请不要使用-F:

grep -rlf messages.txt dir

更新:如果你的台词邮件.txt包含foo=bar等模式,可以使用进程替换的cut和bash中的cut:

grep -rlf <(cut -d = -f 2- messages.txt) dir
grep -r -f message.txt *

应该会成功的

相关问题 更多 >

    热门问题