作为一个辅助问题,知道如何使输出看起来整洁也很好(bash是否有某种形式的字符串格式?)无论如何,我有一个发现。命令返回超过一定大小的所有文件,我想按降序对这些结果进行排序,并将它们传递给邮件程序。我有邮件部分,但我不知道如何对它们进行排序并以有条理的方式显示文件大小。谢谢你的帮助!
答案 0 :(得分:0)
这将找到所有文件> 1000字节并打印出文件名和大小(以字节为单位):
$ find tmp/ -size +1000c -printf '%p %s\n' | sort -k2 -n
这会给你输出像:
tmp/gitwork/integration/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/repo1/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/repo2/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/upstream1/hooks/pre-rebase.sample 4951
tmp/gitwork/upstream2/hooks/pre-rebase.sample 4951
tmp/constraints.dot 7035
tmp/constraints.svg 41657
tmp/so31567373/KBFI.xml 375557
tmp/overflow.tar 399360
如果你想做这个"漂亮",你可以为printf
指令添加一些字段宽度说明符:
$ find tmp/ -size +1000c -printf '%-60p %s\n' | sort -k2 -n
哪能得到你:
tmp/gitwork/integration/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/repo1/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/repo2/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/upstream1/hooks/pre-rebase.sample 4951
tmp/gitwork/upstream2/hooks/pre-rebase.sample 4951
tmp/constraints.dot 7035
tmp/constraints.svg 41657
tmp/so31567373/KBFI.xml 375557
tmp/overflow.tar 399360
如果您对"漂亮"的定义需要更复杂的东西,你可能想通过awk
调查输出管道。