You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用du -s结合cut/awk无法仅提取指定文件大小的问题求助

解决du输出切割失败的问题

哈哈,太懂这种明明逻辑没问题但就是出不来结果的憋屈感了!你的问题根源在于du命令的输出里,大小和文件名之间不是单个空格,而是一堆连续的空格(甚至可能混着制表符),这就导致你用cut -d ' '指定单个空格当分隔符时,根本切不到正确的位置。

给你几个靠谱的解决办法:

  • 最省心的方法:用awk直接取第一个字段
    awk默认会把任意数量的空白字符(空格、制表符都算)当成分隔符,所以直接这样写就行:

    du -s c_parser.py | awk '{print $1}'
    

    这绝对能精准拿到前面的大小数值,不用纠结分隔符的问题。

  • 用tr压缩空格后再cut
    如果非要用cut,可以先通过tr -s ' '把多个连续空格压缩成单个,再切割:

    du -s c_parser.py | tr -s ' ' | cut -d ' ' -f1
    
  • 换个思路:直接用stat获取大小
    如果你要的是文件的实际字节大小(而非磁盘占用块数),用stat命令更直接:

    stat -c %s c_parser.py
    

    要是还是需要磁盘占用的数值,那前面两种方法更合适。

另外提一句,你之前写的awk命令awk -F="c_parser.py"有语法问题,正确的写法应该是-F"c_parser.py"(去掉等号),但就算语法对了,用文件名当分隔符也不是个好主意——万一文件名里有特殊字符,整个命令就失效了,还是用默认的空白分隔最稳妥。

内容的提问来源于stack exchange,提问作者Clannadqs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:35:44