fbpx
Aplicativos

Como adicionar caractere em posição específica do texto

Confesso que o título do artigo não explica exatamente o que esta dica faz, mas é que achei demasiadamente complicado explicar em poucas palavras o que esta dica realmente faz; porém vou tentar dar um exemplo do problema que tive e em seguida a solução para ficar um pouco mais fácil:

De posse de um arquivo de texto com a relação de várias linhas telefônicas eu precisava editá-las para que tal arquivo fosse convertido para .csv e em seguida importado para uma tabela MySQL. Os números telefones estavam no seguinte formato:

554512345678

554523456789

554534567890

554545678901

554556789012

554567890123

554578901234

554589012345

A minha necessidade para com este arquivo era a inserção de um “;” (ponto e vírgula) exatamente na posição 8 de cada linha. Obviamente se fosse um arquivo do tamanho deste meu exemplo, a inserção manual do “;” não demandaria muito trabalho, porém o arquivo em questão possuia mais de 2000 linhas.

Se você já é leitor aqui do blog e acompanha meus artigos e dicas, deve saber que meu editor de textos preferido é o vim justamente por suas muitas funcionalidades. Então obviamente procurei uma solução dentro dele para resolver o meu problema, mas infelizmente não encontrei.

Claro que não desisti, e com um pouco mais de buscas, descobri que o comando sed fazia exatamente o que eu queria. A solução encontrada então foi esta:


sed 's/.\{8\}/&;/' arquivo.txt

Na verdade, o comando acima não insere diretamente no arquivo.txt o “;” na oitava posição de cada linha conforme eu queria, ele apenas me apresenta na tela como ficaria o resultado. Após ter certeza de que o parâmetro está correto, daí então executei o mesmo comando acrescentando apenas alguns poucos parâmetros:


sed 's/.\{8\}/&;/' arquivo.txt > arquivo.csv

Pronto, desta forma eu criei um arquivo novo com as alterações que eu desejava e mantive o original para o caso de precisar de algum backup.

Felix

Residindo atualmente na cidade de Cascavel, no oeste do Paraná. Já dei aulas de informática, trabalhei com Hardware, redes, fui analista de suporte, aprendi SEO e mídias sociais e também programação. Faço um pouco de tudo, mas não sou especialista em nada, por isso estou sempre estudando e tentando evoluir. Com isso vou compartilhando aqui um pouco do que vou aprendendo no dia a dia.

Verified by MonsterInsights