du -s | cut -d' ' -f2 -- 剪切无效

Cla*_*dqs 3 linux bash cut

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

[root@dockertest Shipper]# du -s c_parser.py | cut -d ' ' -f 2
8   c_parser.py
Run Code Online (Sandbox Code Playgroud)

根据我在管道后放置的内容,没有任何变化。将“2”更改为“1”没有任何作用。使用:

[root@dockertest Shipper]# du -s c_parser.py | awk -F="c_parser.py" '{ print $1 }'
Run Code Online (Sandbox Code Playgroud)

也什么都不做。有什么想法吗?

Ini*_*ian 5

的输出du是制表符分隔的,您需要使用制表符分隔符。尽管 tab 是 中的默认分隔符cut,但您也可以显式使用它

du -s file | cut -d $'\t' -f2
Run Code Online (Sandbox Code Playgroud)

要不就

du -s file | cut -f2
Run Code Online (Sandbox Code Playgroud)

在这种情况下,做一个hexdump输出将帮助您轻松理解

du -s file | hexdump -c
0000000   8  \t   f   i   l   e  \n                                    
0000007
Run Code Online (Sandbox Code Playgroud)

使用awk的制表符太

du -s file | awk 'BEGIN{FS=OFS="\t"}{print $2}'
Run Code Online (Sandbox Code Playgroud)