打印空间,如果行是AWK相同 [英] Print space if the rows are the same in awk

查看:112
本文介绍了打印空间,如果行是AWK相同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想打印的空间或点,如果我的行都是一样的。

查看示例:

输入:

  ROW1 XX YY ZZ
ROW1 XX YY ZZ
ROW1 XX YY ZZ
ROW2 AA BB CC
ROW2 AA BB CC
ROW3 GG HH OO

OUTPUT:

  ROW1 XX YY ZZ
     XX YY ZZ
     XX YY ZZ
ROW2 AA BB CC
     AA BB CC
ROW3 GG HH OO

有没有简单的方法来打印只是空间?

感谢您的任何帮助。


解决方案

  $的awk'{C = $ 1} == c ^ p {GSUB(/./,,$ 1) } {:p = C} 1'文件
ROW1 XX YY ZZ
     XX YY ZZ
     XX YY ZZ
ROW2 AA BB CC
     AA BB CC
ROW3 GG HH OO

I would like to print space or dot if my rows are the same.

See the example:

INPUT:

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

OUTPUT:

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

Is there any easy way to print just space?

Thank you for any help.

解决方案

$ 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

这篇关于打印空间,如果行是AWK相同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆