在目录中查找文件内的单词

在目录中查找文件内的单词

我是 Bash 新手。我有一个目录tags,里面有很多.txt类似名称的文件,如下所示

[coral/home/tags]$ ls:
file1.txt file2.txt file3.txt file4.txt

每个.txt文件都包含如下信息:

line1 b1
line2 b2
line3 b3
line4 b4

我想查看每个文本文件并找到包含单词的文件b3。如果文件包含该单词,我希望脚本写入整行和包含该单词的文本文件。

这是我的失败的尝试:

#!/usr/bin/env                                                           
PATH=path/to/files
for x in $PATH:
do
  echo $x
done

答案1

如果你不介意使用 grep:

tags目录中: grep -Hrn 'b3' .

  • -H打印文件名(当搜索多个文件时暗示)
  • -r递归搜索
  • -n打印行号
  • .通配符

可能有趣的选项: grep -C 3 'b3' path/to/files 您可以调整-C匹配之前和之后返回的 ontext 行数(这里是3)。

相关内容