【问题标题】:Awk - Adding specific number of spaces between columnsawk - 在列之间添加特定数量的空格
【发布时间】:2018-06-05 19:35:10
【问题描述】:

我的输入文件的列空间均匀,如下所示:

X a b C D

如何使用 awk 指定列之间的空格数,以便我得到如下内容:

X     a b    C         D

我知道如何使用 awk 计算列之间的空格,但我只是不知道如何添加这些空格以获得我想要的布局。有什么建议吗?

【问题讨论】:

    标签: awk


    【解决方案1】:

    awk

    $ echo "X a b C D" | awk '{printf "%-6s%-2s%-5s%-9s%s\n", $1,$2,$3,$4,$5}'
    
    X     a b    C        D
    

    或者直接用 printf

    $ echo "X a b C D" | xargs printf "%-6s%-2s%-5s%-9s%s\n"
    X     a b    C        D
    

    【讨论】:

      【解决方案2】:

      这就是 printf 派上用场的地方:

      $ echo "X a b C D" | perl -lane 'printf "%-6s%-2s%-5s%-9s%s\n", @F'
      X     a b    C        D
      

      根据需要调整字段宽度。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-14
        • 1970-01-01
        • 2023-01-25
        相关资源
        最近更新 更多