Grep 从多个文件到多个子目录的姓氏

Grep surnames from multiple files to multiple subdirectories

我正在尝试从分散在数以万计的子目录中的文本文件中提取行,这些子目录包含 15 个约 100 行的文本文件中的 [surname],格式如下:

[名字] [姓氏]

[名字] [中间名] [姓氏]

因此,对所有子目录执行 ~1500 次搜索,并将所有行编译到一个文件中 surnames.txt

谢谢。

如果目录(及子目录)中的所有文件都只是您要搜索的.txt文件,那么以下内容就足够了。

grep surname -rh . > surnames.txt

标志的含义:

  • -r 递归搜索子目录。
  • -h 防止文件名被打印出来。

如果并非所有文件都是 .txt 文件,您应该使用 find:

将搜索范围缩小到仅 .txt 文件
find . -name \*.txt -exec grep surname -h {} + > surnames.txt

如果这是您经常要做的事情,您应该考虑并行执行此搜索,类似于 this