我如何计算此目录中所有文件的行数?

我如何计算此目录中所有文件的行数?

我想计算此目录及其所有子目录中所有文件的行数,但排除目录“public”、“modules”和“templates”。

如何?

答案1

 find . -type f |grep -v "^./public" |grep -v "^./modules"|grep -v "^./templates"|xargs cat |wc -l
  1. 使用以下命令列出当前目录下的所有文件find . -type f
  2. 使用 grep -v 从“排除”目录中过滤出文件
  3. xargs将从 stdin 读取文件列表并将所有文件作为选项传递给cat
  4. cat将所有文件打印到标准输出
  5. wc 会计算行数。

如果要分别计算每个文件中的行数,请更改xargs cat |wc -lxargs wc -l

答案2

find . -type d \
  \( -path ./public -o -path ./modules -o -path ./templates \) -prune \
  -o -type -f -print0 | xargs -0 wc

相关内容