Adiciona caractere de nova linha ao arquivo

0

Oi pessoal Eu preciso mudar a seqüência de linha única abaixo usando um script de shell

{1:F01NESWSZM0AXXX1111111111} {2:I940BBRUBEBBXXXXN} {3:{108:400MSOG161200FRO}} {4: :20:400MSOG161200FRO :25:1xxxxxxxx65 :28C:7 :60F:D160429EUR423431,51 :61:1604280428DR300001,NONREF//REFABH09 INCOMING F 1 PARMALT ROUTH AFR :62F:D160429EUR423431,51 :64:D160429EUR423431,51 -}

PARA

{1:F01NESWSZM0AXXX1111111111} {2:I940BBRUBEBBXXXXN} {3:{108:400MSOG161200FRO}} {4: 
:20:400MSOG161200FRO 
:25:1xxxxxxxx65 
:28C:7 
:60F:D160429EUR423431,51 
:61:1604280428DR300001,NONREF//REFABH09 INCOMING F 1 PARMALT ROUTH AFR 
:62F:D160429EUR423431,51 
:64:D160429EUR423431,51 -}

Eu estava pensando em usar sed, mas as strings são mais de 1 quando uma nova linha deve ser adicionada antes do caractere.

O delimitador de uma nova linha é

:20:
:25:
:28C:
:60F:
:64:

Como isso pode ser feito?

    
por Nicholas Namacha 05.05.2016 / 11:47

2 respostas

1

Use apenas "alternativas" usando o \| :

sed 's/\(:\(20\|25\|28C\|60F\|64\):\)/\n/g'
    
por 05.05.2016 / 12:01
0

Sugiro

sed 's/ :/\n:/g' long.txt 
    
por 05.05.2016 / 12:05