如何使用grep命令递归搜索包含两个特定字符串的文件

假设你需要在目录/mnt/hpc/home/zhengpu/srb/enzdes_5/*/*complex__DE_2.pdb下递归地搜索包含字符串'626.89'且同时包含'-55.06'的文件,并且只输出文件路径。

你可以使用以下命令:bashgrep -rl '626.89' /mnt/hpc/home/zhengpu/srb/enzdes_5/*/*complex__DE_2.pdb | xargs grep -l '-55.06'

命令解释:

  1. 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: 要搜索的目录路径。

  2. | xargs grep -l '-55.06': * |: 管道符,将前一个命令的输出作为后一个命令的输入。 * xargs: 将输入转换成命令行参数传递给其他命令。 * grep -l '-55.06': 在上一步筛选出的文件中搜索包含字符串'-55.06'的文件,并仅输出文件路径。

总结:

这条命令会先递归搜索包含字符串'626.89'的文件,然后在这些文件中搜索包含字符串'-55.06'的文件,最终仅输出符合条件的文件路径。

你可以根据需要修改搜索的字符串和目录路径。

如何使用grep命令递归搜索包含两个特定字符串的文件

原文地址: https://www.cveoy.top/t/topic/eGe4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录