2016-05-05 3 views
1

Я хотел бы распечатать пробел или точку, если мои строки совпадают.Печатать пространство, если строки одинаковы в 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 

ВЫВОД:

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

Есть ли простой способ напечатать только пространство?

Благодарим за помощь.

ответ

6
$ 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 
+1

это отличное решение! Спасибо огромное! – Paul

+0

Эд, не могли бы вы объяснить команду, пожалуйста? Также если вам нужны вкладки, а не пробелы, куда бы они вошли в эту команду? – Kg123

+0

@ Kg123 p для предыдущих и c для тока. ДУМАЙТЕ об этом, и я уверен, что вы можете понять, что он делает, но если у вас есть какие-то конкретные вопросы об этом, дайте мне знать. ответьте на вопрос о вкладках - где вы ХОТИТЕ их пойти? –