【问题标题】:How to remove the filename from the end of the du -h output如何从 du -h 输出的末尾删除文件名
【发布时间】:2010-02-11 19:32:41
【问题描述】:

举个例子:

$ du -h file_size.txt
112K file_size.txt

如何从 du -h 的输出中删除文件名

我曾尝试使用 sed 搜索字符串(文件名)并将其替换为空,但没有成功(下面的命令)

du -h file_size.txt | sed 's/ 'file_size.txt'//'

有人可以指出为什么这不起作用,或者可能是更好的方法吗?

问候

保罗

【问题讨论】:

    标签: linux sed awk


    【解决方案1】:

    您在该命令行中有一些错误的引用。最简单的大概是:

    du -h file_size.txt | cut -f -1
    

    修复你的命令行:

    du -h file_size.txt | sed 's/file_size.txt//'
    

    因为你的帖子有一个awk 标签:

    du -h file_size.txt | awk '{ print $1 }'
    

    【讨论】:

    • du -h file_size.txt | sed 's/\s+.*//'
    • @Tomalak 有正确的想法来使用 sed - 肯定比输入两次文件名要好。
    • 哎呀,我的剩余部分的单引号在前面有一个 $VARIABLE。一如既往的感谢您的帮助
    • @paultop6:如果您使用变量,而不是打开、关闭和重新打开和关闭单引号,只需使用双引号,如下所示:sed "s/${VARIABLE}//"
    • @Dennis:即使变量包含正则表达式元字符,这是否也能正常工作?
    【解决方案2】:
    du -h file_size.txt | cut -f1
    

    【讨论】:

      【解决方案3】:

      简单输出第一列。这是awk的解决方案

      du -h test.txt  | awk '{ print $1 }'
      

      【讨论】:

        【解决方案4】:

        这有点冗长,但无论如何,这是你想要的另一种方式:

        du -h file_size.txt |while read x junk; do echo $x; done
        

        【讨论】:

          【解决方案5】:

          @OP 如果您的数据具有不同的字段,例如空格/制表符,那么使用 awk/cut 之类的工具通过分隔符在这些字段上拆分它们更容易。不需要使用正则表达式(例如 sed )。更好的是只使用外壳。

          各种方式

          $ du -h file | awk '{print $1}'
          4.0K
          
          $ du -h file | cut -f1
          4.0K
          
          $ set -- $(du -h file) #using shell only
          $ echo $1
          4.0K
          

          【讨论】:

            【解决方案6】:

            除了在 sed 正则表达式中包含一个空格并且 du 输出选项卡之外,您的原始命令本来可以工作。

            【讨论】:

              【解决方案7】:

              du -h 的输出是 [tab] 分隔的。

              du -h file_size.txt |sed 's/[\t].*//g'
              

              【讨论】:

                猜你喜欢
                • 2019-03-26
                • 2017-11-15
                • 2017-03-27
                • 1970-01-01
                • 2012-01-27
                • 2012-07-24
                • 2018-10-30
                • 2020-05-30
                • 1970-01-01
                相关资源
                最近更新 更多