Aciona um CRLF após cada: [0-9] [0-9] [a-zA-Z]: em um arquivo com n linhas [fechado]

1

Abaixo, você vê uma mensagem SWIFT de exemplo. Este é um MT103. O SWIFT tem muitos outros tipos de mensagens. Eu tenho agora um arquivo, onde uma mensagem está em uma linha. Significa, 5 mensagens criam um arquivo com 5 linhas. Agora preciso ler o arquivo e criar depois de cada campo (neste exemplo, temos <:20:> ou <:23B:> ou <:50K:> - você já vê um padrão. - > :...: ou :..: ou melhor :[0-9][0-9][a-zA-Z]: ) um CRLF. Eu tentei sed extensivamente, o que me permite um CRLF.

Exemplo:

sed 's/\(:86:\)/\n:86:/' file.txt > file_field86.txt
sed 's/\(:28C:\)/\n:28C:/' file.txt > file_field28C.txt

Com esses dois exemplos, posso fazer o CRLF necessário para esses dois campos. sed permite 9 substituição de padrões por corrida. Mas eu tenho mais de 9 padrões (ou campos) para substituir.

Estou usando o bash em um RHEL (versão 4 *). Eu tentei muitos seds para fazer isso acontecer, mas eu não encontrei uma maneira de fazer isso.

Quem pode me ajudar a fazer isso?

Muito obrigado pelo seu apoio, querida comunidade.

{1:F01MIDLGB22AXXX0548034693}{2:I103BKTRUS33XBRDN3}{3:{108:MT103}}{4::20:8861198-0706:23B:CRED:32A:000612USD5443,99:33B:USD99999,99:50K:XXXXXXXXX  XXYYYXYXYXX:52A:BCITITMM500:53A:BCITUS33:54A:IRVTUS3N:57A:BNPAFRPPGRE:59:/20041010050500001M02606KILLY Y.E.ERERERER:70:/RFB/INVOICE 9999999:71A:SHA-}
    
por user298712 08.07.2018 / 12:13

0 respostas

Tags