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-}
Tags sed