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

时间:2015-12-08 23:58:09

标签: linux bash command-line

问题:如何获取名称为#34; interesting-file.txt"的所有文件?其中有多行?

背景研究

  • 我可以使用find . -name "interesting-file.txt"
  • 轻松找到这些文件
  • 我相信我需要使用某种形式的wc -l才能获得他们的支持 号。
  • 我假设我会使用awk '$1 > 1'来查找这些文件 不止一行。

但是我在将它们放在一起时遇到了问题。

我尝试了一些

的变体
find . -name "interesting-file.txt" | awk '{print wc -l $0}'

没有成功。我还没有开始#34;大于一个"除了寻找相关的命令。

我在OSX上使用标准终端。

感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

我会选择这样的事情:

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

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

使用GNU awk,您可以利用ENDFILE块并使用{} +来最小化awk的调用次数:

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