How to count all the lines of files
我还需要输出目录名。我所能做的就是输出所有目录中目录名为的行的总数。
1 | find . -name '*.c' | xargs wc -l | xargs -I{} dirname {} | xargs -I{} dirname {} |
我把
1 2 3 | find . -type f -print0 | xargs -0 grep -c ';$' | \ awk -F":" '$NF>0{cmd="dirname"$1; while ( ( cmd | getline result ) > 0 ) {printf"%s\t%s ",result,$2} close(cmd) }' |
想法是
就像他们现在所说的一条漂亮的邮轮,
1 2 | find . -type f -print0 | xargs -0 grep -c ';$' | awk -F":" '$NF>0{cmd="dirname"$1; while ( ( cmd | getline result ) > 0 ) {printf"%s\t%s ",result,$2} close(cmd) }' |
下面是一个脚本:
1 2 3 4 5 6 7 | #!/usr/bin/env bash for dir in */; do ( cd"$dir" count=$(find . -name '*.c' -print0 | xargs -0 grep '[;]$' | wc -l) echo -e"${count}\t${dir}" ) done |
如果需要每个子目录的编号:
1 2 3 4 5 6 7 8 | #!/usr/bin/env bash for dir in $(find . -type d); do ( cd"$dir" count=$(find . -maxdepth 1 -name '*.c' -print0 | \ xargs -0 grep '[;]$' | wc -l) echo -e"${count}\t${dir}" ) done |
使用