我正在尝试仅获取指定文件的大小。通常我这样做的问题为零,但无论我在这里尝试什么,文件名都不会消失。
[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)
也什么都不做。有什么想法吗?
的输出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)