如何查找具有给定名称的多行文件?

Luc*_*ain 2 linux bash command-line

问题:如何获得名称中包含多行的所有名为“ interesting-file.txt”的文件?

背景调查:

  • 我可以轻松找到文件 find . -name "interesting-file.txt"
  • 我相信我需要使用某种形式的wc -l来获取他们的行号。
  • 我想我会用awk '$1 > 1'多行查找那些文件。

但是我在将所有内容组合在一起时遇到了问题。

我尝试了几种

find . -name "interesting-file.txt" | awk '{print wc -l $0}'
Run Code Online (Sandbox Code Playgroud)

没有成功。除了寻找相关命令之外,我还没有开始“大于一个”。

我在OSX上,使用标准终端。

谢谢你的帮助!

Tom*_*ech 6

我会去这样的事情:

find . -name "interesting-file.txt" -exec awk 'END { if (NR > 1) print FILENAME }' {} \;
Run Code Online (Sandbox Code Playgroud)

找到的所有文件都传递给awk,如果行数NR大于1 ,则awk将打印名称。

使用GNU awk,您可以利用该ENDFILE块,并用于{} +最大程度地减少awk的调用次数:

find . -name "interesting-file.txt" -exec awk 'ENDFILE { if (FNR > 1) print FILENAME }' {} +
Run Code Online (Sandbox Code Playgroud)