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

标签 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}'

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

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

感谢您的帮助!

最佳答案

我会选择这样的东西:

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

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

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

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

关于linux - 如何找到具有给定名称的多行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34168397/

相关文章:

linux - C 中的破管道——pipe()、fork()、exec() 程序

c - 如何通知父进程我完成了

macos - OSX bash 递归查找按大小排序的文件,文件夹中除外

linux - 如何使用 "make mrproper "命令?我在 Linux From Scratch 上工作

c++ - 为特定目录中除其子目录外的所有 C++ 文件生成标签文件

cmd - 使用 cmd 或 media info/ffmpeg 的文件列表和文件大小

linux - Git 空格/行结尾

linux - 如果在此示例中遇到空格,为什么 bash 脚本会中断?

linux - 如何使用find和grep列出文件名

android - 如何使用 adb pull 命令?