Substituir texto / string por nova linha

1

Eu tive um requisito em que preciso mover dados para uma nova linha com base em um texto:

Input
:61: 456 B66666 :61: 878 N78777 :61: 534533534 BNNN

Output
:61: 456 B66666
:61: 878 N78777
:61: 534533534 BNNN

Então, basicamente, assim que encontrar :61: , ele deve passar para uma nova linha.

    
por kamiji83 22.10.2014 / 17:28

2 respostas

4

Aqui está uma solução muito simples que funciona perfeitamente no seu exemplo:

sed 's/ :61:/\n:61:/g' < input_file

Você pode ter que adaptá-lo um pouco, especialmente se você nem sempre tiver um espaço antes de :61: em seus arquivos de entrada.

    
por 22.10.2014 / 17:34
2

Semelhante à resposta do @lgeorget, isso adiciona uma nova linha antes de qualquer ": 61:" que não é não no começo da linha:

perl -pe 's/(?<!^)(?=:61:)/\n/g' file
    
por 22.10.2014 / 19:30