Use apenas "alternativas" usando o \|
:
sed 's/\(:\(20\|25\|28C\|60F\|64\):\)/\n/g'
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?
Use apenas "alternativas" usando o \|
:
sed 's/\(:\(20\|25\|28C\|60F\|64\):\)/\n/g'
Sugiro
sed 's/ :/\n:/g' long.txt
Tags sed shell-script