我的目录结构如下
输出/一个/ 1 / multipleFiles
输出/ A / 2 / multipleFiles
输出/一个/ 3 / multipleFiles
输出/ B / 1 / multipleFiles
输出/ B / 2 / multipleFiles
输出/ B / 3 / multipleFiles
我想知道每个目录的行数。所以基本上,每个最内层目录级别的行数而不是文件级别。最里面的目录1,2,3是我们为分析生成的不同类型的输出,其中包含多个hadoop part-xxxx文件。
我移动到输出目录并尝试了以下命令。
find . -maxdepth 2 -type d -name '*' | awk -F "/" 'NF==3' | awk '{print $0"/*"}' | xargs wc -l
但我收到错误
wc: ./a/1/*: No such file or directory
wc: ./a/2/*: No such file or directory
wc: ./a/3/*: No such file or directory
但如果我尝试
wc -l ./a/1/*
我正在获取该特定文件夹的正确输出。
我在这里缺少什么。
编辑:
我更新了如下命令,删除了不必要的awk命令。
find . -mindepth 2 -maxdepth 2 -type d -name '*' | xargs wc -l
这再次导致错误
wc: ./a/1: Is a directory
wc: ./a/2: Is a directory
wc: ./a/2: Is a directory
答案 0 :(得分:0)
尝试execdir
,例如:
find . -maxdepth 2 -type f -execdir wc -l {} \;
这将仅在找到文件的目录中运行命令wc -l {}
:
-execdir The -execdir primary is identical to the -exec primary with
the exception that utility will be executed from the
directory that holds the current file.