目录中文件的合并字数

目录中文件的合并字数

wc是否可以仅返回一系列目录中的某些文件(例如 .txt 文件)的组合字数统计?

答案1

使用 GNU wc (至少),您可以将findwith的结果组合起来wc ,如下所示:

find folder/ -name '*.txt' -print0 |   wc -w --files0-from=-

这为您提供了所有功能find(如果您只是想找到所有以诚实结尾的文件,那就有点矫枉过正了.txt),并且它甚至可以处理最奇怪的文件名(例如包含换行符)。

答案2

我对你的情况的理解正确吗?因此,您说您位于一个名为 Documents 的文件夹中,并且该文件夹内有多个文件夹,因此您将目录 (cd) 更改为该目录,并希望计算每个文件夹中有多少个 .txt 文件深入到该目录中。子文件夹?

如果这就是您的意思,那么您可以这样做:

$ ls -R *.txt | wc -l

ls = 列表。 -R = 递归每个子文件夹 *.txt = 任意数量的以 .txt 结尾的任意字符

| = 传递给.

wc -l = 数一下有多少。

答案3

这是我刚刚通过 xargs 制作的一个很好的单行代码 - 在 macOS 上进行了测试:

find . | grep -E "(.*\.js.*|.*\.txt|.*\.css|.*\.htm.*|.*\.sh|.*\.scss|.*\.md|.*\.java|.*\.conf|.*\.yaml)" | sed "s/^/\"/" | sed "s/$/\"/" | xargs -J thefile wc thefile

这处理文件名中的空格。也许在 Linux 中将 -J 替换为 -Y ?割草机切断了我的以太网与我的 Linux 盒子的连接,所以我目前无法在那里进行测试。

相关内容