du -s | cut -d' ' -f2 - 切割没有效果

时间:2018-03-28 17:20:53

标签: linux bash cut

我试图仅获取指定文件的大小。通常我没有问题,但无论我在这里尝试什么,文件名都不会消失。

[root@dockertest Shipper]# du -s c_parser.py | cut -d ' ' -f 2
8   c_parser.py

根据管道后面的内容,没有任何变化。改变' 2'到' 1'没有做任何事情。使用:

[root@dockertest Shipper]# du -s c_parser.py | awk -F="c_parser.py" '{ print $1 }'

什么也没做。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

du的输出以制表符分隔,您需要使用制表符分隔符。虽然tab是cut中的默认分隔符,但您也可以明确使用它

du -s file | cut -d $'\t' -f2

或只是

du -s file | cut -f2

在这种情况下,输出的hexdump会帮助您轻松理解

du -s file | hexdump -c
0000000   8  \t   f   i   l   e  \n                                    
0000007

在制表符分隔符

上也使用awk
du -s file | awk 'BEGIN{FS=OFS="\t"}{print $2}'