【问题标题】:Trim leading whitespace using awk command使用 awk 命令修剪前导空格
【发布时间】:2019-03-20 03:40:21
【问题描述】:

我已经看过其他示例和帖子,但似乎无法使其正常工作。 我有一些 lparstat 输出,如下所示:

Partition  Number                           :  1
Type                                       :  Dedicated-SMT
Mode                                       : Capped
Entitled  Capacity                          : 4,00
Partition  Group-ID                         : 32769
Shared Pool  ID                             : -

我想获取 Capped 值。

我有以下命令但是需要消除前导空格:

cat lparstat.out | egrep '^Mode' | awk -F: '{ print $2 }'

任何关于如何修改 awk 命令的建议表示赞赏。我不想通过管道传递给 sed。

【问题讨论】:

    标签: awk


    【解决方案1】:
    awk -F '  *: ' '$1=="Mode"{print $2}' lparstat.out
    

    或使用正则表达式:

    awk -F ': ' '/^Mode/{print $2}' lparstat.out
    

    输出:

    封顶

    【讨论】:

      【解决方案2】:

      我对此进行了测试,它可以工作:

      cat lparstat.out | egrep '^Mode' | awk -F':[[:blank:]]*' '{ print $2 }'
      

      这会将字段分隔符更改为:,后跟零个或多个空格或制表符。

      【讨论】:

      • 谢谢 - 将 Cyrus 标记为答案,因为它在较短的命令中执行相同的操作
      【解决方案3】:

      你可以试试这个:

      awk -F ":" '/^Mode/ {gsub(/ /,"");print $2}' lparstat.out
      

      输出:

      Capped
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-07
        • 1970-01-01
        • 2015-05-21
        • 2014-01-03
        • 2011-04-12
        • 1970-01-01
        • 2010-11-09
        • 2011-02-04
        相关资源
        最近更新 更多