当我ls -l
时,我得到了
-rw-r--r-- 1 jboss admin **26644936** Sep 1 21:23 MyBig.war
如何按以下方式打印
-rw-r--r-- 1 jboss admin **26,644,936** Sep 1 21:23 MyBig.war
答案 0 :(得分:3)
格式化ls
输出的正确方法是指定BLOCK_SIZE
。
话说:
BLOCK_SIZE="'1" ls -l
将达到您想要的结果。
从以上链接引用:
某些GNU程序(至少
df
,du
和ls
)在“块”中显示大小。 您可以调整块大小和显示方法以制作大小 更容易阅读。
以
‘'’
开头的块大小规范会导致输出大小 显示有数千个分隔符。
答案 1 :(得分:1)
使用sed
:
$ ls_output='-rw-r--r-- 1 jboss admin 26644936 Sep 1 21:23 MyBig.war'
$ echo $ls_output | sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'
-rw-r--r-- 1 jboss admin 26,644,936 Sep 1 21:23 MyBig.war
以上sed命令重复将最后4位####
替换为#,###
。
-e :a
:为a
命令创建一个名为t
的标签。ta
:如果替换成功,请跳至a
。