如何更改命令输出的文件大小单位tar
?
tar tvf test.tar.gz | awk '{print $5,$9}'
我希望它打印以千兆字节为单位的文件大小。
答案1
非常粗略地,你可以:
$ while read size filename; do echo "$filename: $(( size /1024 /1024 /1024))"; done < <(tar tvf test .tar.gz | awk '{print $4,$7}') test1.txt: 1 test2.txt: 5 test3.txt: 0 $
您可能还想添加一些小数精度:
$ while read size filename; do echo "$filename: $(( (size * 100) /1024 /1024 /1024))"; done < <(tar tvf test.tar.gz | awk '{print $4,$7}') | sed 's/\([0-9][0-9]\)$/.\1/' test1.txt: 1.03 test2.txt: 5.93 test3.txt: 0.44 $