如何使用grep命令递归搜索包含两个特定字符串的文件
如何使用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'
命令解释:
-
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 -l '-55.06': 在上一步筛选出的文件中搜索包含字符串'-55.06'的文件,并仅输出文件路径。
总结:
这条命令会先递归搜索包含字符串'626.89'的文件,然后在这些文件中搜索包含字符串'-55.06'的文件,最终仅输出符合条件的文件路径。
你可以根据需要修改搜索的字符串和目录路径。
原文地址: https://www.cveoy.top/t/topic/eGe4 著作权归作者所有。请勿转载和采集!