我有一堆myfile[somenumber]嵌套目录中的表单文件.
我想在每个文件上生成行数,并将该计数输出到文件.
这些文件是二进制文件,因此必须通过其他脚本传送open_file它们才能通过"wc"进行计数.我做:
ls ~/mydir/*/*/other_dir/myfile* | while read x; do open_file $x | wc -l; done > stats
Run Code Online (Sandbox Code Playgroud)
这是有效的,但问题是它将行计数输出到文件stats而不说原始文件名.例如,它输出:
100
150
Run Code Online (Sandbox Code Playgroud)
代替:
/mydir/...pathhere.../myfile1: 100
/mydir/...pathhere.../myfile2: 150
Run Code Online (Sandbox Code Playgroud)
第二个问题:
如果我想将数字wc -l除以常数,例如除以4,然后将其输出到文件中,该怎么办?
我知道行数是4的倍数,因此结果应该是整数.不知道如何从上面的脚本中做到这一点.
如何将原始文件名和wc -l结果放在输出文件中?
谢谢.
您可以在计算行之前输出文件名:
echo -n "$x: " ; open_file $x | wc -l.-n用于echo省略输出中尾随换行符的参数.
要划分整数,您可以使用expr,例如,expr $(open_file $x | wc -l) / 4.
因此,完整的while循环将如下所示:
while read x; do echo -n "$x: " ; expr $(open_file $x | wc -l) / 4 ; done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1513 次 |
| 最近记录: |