Inserir linha no arquivo quando o grupo de alterações de linhas

0

Digamos que eu tenha um arquivo de texto como este:

group1 hello
group1 there
group1 nice line
group2 here
group2 we
group2 go

O que eu quero fazer é inserir uma linha quando o grupo de linhas mudar, algo como:

group1 hello
group1 there
group1 nice line
---------------------------------------
group2 here
group2 we
group2 go

Eu não me importo se essa linha também aparece como a primeira e / ou última linha. Neste momento eu só preciso de algo que separe a informação.

Como faço isso com sed ou awk ? Ou talvez existam outras maneiras?

    
por sjngm 27.01.2016 / 08:05

1 resposta

1

com awk :

awk 'NR!=1&&x!=$1{print "---"} {x=$1}1' file
  • NR!=1&&x!=$1 : aplica-se a todas as linhas, exceto à primeira linha, e verifica se o primeiro campo foi alterado.
  • print "---" : se sim, imprima os traços.
  • {x=$1} : defina x para a próxima iteração.
  • 1 : uma condição verdadeira que awk imprime cada linha.
por 27.01.2016 / 08:12