【问题标题】:Print space if the rows are the same in awk如果 awk 中的行相同,则打印空间
【发布时间】:2016-05-05 13:28:56
【问题描述】:

如果我的行相同,我想打印空格或点。

看例子:

输入:

row1 xx yy zz
row1 xx yy zz
row1 xx yy zz
row2 aa bb cc
row2 aa bb cc
row3 gg hh oo

输出:

row1 xx yy zz
     xx yy zz
     xx yy zz
row2 aa bb cc
     aa bb cc 
row3 gg hh oo

有没有什么简单的方法可以只打印空格?

感谢您的帮助。

【问题讨论】:

    标签: bash awk uniq


    【解决方案1】:
    $ awk '{c=$1} c==p{gsub(/./," ",$1)} {p=c} 1' file
    row1 xx yy zz
         xx yy zz
         xx yy zz
    row2 aa bb cc
         aa bb cc
    row3 gg hh oo
    

    【讨论】:

    • 那是很好的解决方案!非常感谢!
    • Ed,你能解释一下命令吗?另外,如果您想要制表符而不是空格,那么它们会在此命令中的哪个位置?
    • @Kg123 p 是以前的,c 是当前的。考虑一下,我相信您可以弄清楚它在做什么,但是如果您对此有任何具体问题,请告诉我。写下你关于标签的问题——你想让它们去哪里?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 2017-04-30
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多