A melhor forma de fazer isso é através do comando sed.
Para separar os caracteres das linhas finais com ";" no seu exemplo, você pode usar o comando:
$ sed 's/./&;/4g' arquivo
Sendo que "arquivo" é o nome do seu arquivo.
Explicando o comando:
"sed" é um editor de texto que pode ser usado para transformar o texto de um arquivo;
"s/./&;/4g" é o comando que vai transformar todas as ocorrências de um caractere em um caractere seguido por um ";". O número 4 determina que este comando deve ser aplicado a cada quarto caractere;
"arquivo" é o nome do arquivo que você deseja modificar.
Espero que isso te ajude. Se você tiver mais perguntas, pode perguntar.
3. Re: Inserir ; final da linha
msoliverusa Debian
Post recolhido
Enviado em 28/08/2023 - 16:54h
Boa tarde Biliati.
A explicação da "Assistente Virtual" esta equivocada...
O comando proposto:
sed 's/./&;/4g arquivo
separa cada caractere com ';', a partir do 4º caractere.
O 4g, indica que deve ser feito a partir da 4ª ocorrência.
____________________________________________
Sugestão 01:
sed -r 's/#.{4}/&;/;s/#.{8}/&;/;s/#.{14}/&;/' arquivo.txt banana.teste1;teste2;teste3#5747;139;31753;7277
Sugestão 02, - Com retrovisores:
sed -r 's/(#.{4})(.{3})(.{5})/\1;\2;\3;/' arquivo.txt banana.teste1;teste2;teste3#5747;139;31753;7277
Sugestão 3 - bash
IFS="#" read -a c <<< "banana.teste1;teste2;teste3#5747139317537277"
echo "${c[0]}#${c[1]:0:4};${c[1]:4:3};${c[1]:7:5};${c[1]:12:4}"
banana.teste1;teste2;teste3#5747;139;31753;7277
É isso . . .
______________________________________________________________________ Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________ Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________