使用 grep 和 xargs 命令递归搜索包含多个字符串的文件
使用 grep 和 xargs 命令查找包含多个字符串的文件
在 Linux 系统中,我们经常需要搜索包含特定字符串的文件。如果需要查找同时包含多个字符串的文件,可以使用 grep 和 xargs 命令组合实现。
假设我们需要在目录 /mnt/hpc/home/zhengpu/srb/enzdes_5/*/*complex__DE_2.pdb 下递归地搜索包含字符串 '626.89' 且同时包含 '-55.06' 的文件,并且只输出文件路径。
以下是使用 grep 和 xargs 命令实现的命令:
grep -rl '626.89' /mnt/hpc/home/zhengpu/srb/enzdes_5/*/*complex__DE_2.pdb | xargs grep -l '-55.06'
命令解释:
grep -rl '626.89' /mnt/hpc/home/zhengpu/srb/enzdes_5/*/*complex__DE_2.pdb:grep: 用于在文件中搜索字符串的命令。-r: 递归搜索指定目录下的所有文件和子目录。-l: 仅输出包含匹配项的文件名,而不是匹配的行。'626.89': 要搜索的第一个字符串。/mnt/hpc/home/zhengpu/srb/enzdes_5/*/*complex__DE_2.pdb: 要搜索的目录路径。
|: 管道符,用于将前一个命令的输出作为后一个命令的输入。xargs: 用于将输入转换为命令行参数的命令。grep -l '-55.06': 使用xargs将上一个grep命令的结果作为参数传递给第二个grep命令,进一步筛选包含 '-55.06' 的文件并输出文件名。
总结:
通过结合使用 grep 和 xargs 命令,我们可以方便地递归搜索包含多个特定字符串的文件,并仅输出文件路径。这种方法可以帮助我们在大量文件中快速找到需要的信息。
原文地址: https://www.cveoy.top/t/topic/eGe6 著作权归作者所有。请勿转载和采集!