Postagem em destaque

Criando bot do Telegram em Shell script com ShellBot

Inserindo uma nova linha a cada N elementos

sed


O usuário possui um arquivo de texto especifico para controle de backup, contendo uma lista com 100 nomes dispostos em sequência na mesma linha e com a seguinte nomenclatura.

Listando conteúdo do arquivo.
$ cat backups.txt
cpmove-usuario1.tar.gz cpmove-usuario2.tar.gz cpmove-usuario3.tar.gz cpmove-usuario4.tar.gz cpmove-usuario5.tar.gz cpmove-usuario6.tar.gz cpmove-usuario7.tar.gz cpmove-usuario8.tar.gz cpmove-usuario9.tar.gz cpmove-usuario10.tar.gz cpmove-usuario11.tar.gz cpmove-usuario12.tar.gz cpmove-usuario13.tar.gz cpmove-usuario14.tar.gz cpmove-usuario15.tar.gz cpmove-usuario16.tar.gz cpmove-usuario17.tar.gz cpmove-usuario18.tar.gz cpmove-usuario19.tar.gz cpmove-usuario20.tar.gz cpmove-usuario21.tar.gz cpmove-usuario22.tar.gz cpmove-usuario23.tar.gz cpmove-usuario24.tar.gz cpmove-usuario25.tar.gz cpmove-usuario26.tar.gz cpmove-usuario27.tar.gz cpmove-usuario28.tar.gz cpmove-usuario29.tar.gz cpmove-usuario30.tar.gz cpmove-usuario31.tar.gz cpmove-usuario32.tar.gz cpmove-usuario33.tar.gz cpmove-usuario34.tar.gz cpmove-usuario35.tar.gz cpmove-usuario36.tar.gz cpmove-usuario37.tar.gz cpmove-usuario38.tar.gz cpmove-usuario39.tar.gz cpmove-usuario40.tar.gz cpmove-usuario41.tar.gz cpmove-usuario42.tar.gz cpmove-usuario43.tar.gz cpmove-usuario44.tar.gz cpmove-usuario45.tar.gz cpmove-usuario46.tar.gz cpmove-usuario47.tar.gz cpmove-usuario48.tar.gz cpmove-usuario49.tar.gz cpmove-usuario50.tar.gz cpmove-usuario51.tar.gz cpmove-usuario52.tar.gz cpmove-usuario53.tar.gz cpmove-usuario54.tar.gz cpmove-usuario55.tar.gz cpmove-usuario56.tar.gz cpmove-usuario57.tar.gz cpmove-usuario58.tar.gz cpmove-usuario59.tar.gz cpmove-usuario60.tar.gz cpmove-usuario61.tar.gz cpmove-usuario62.tar.gz cpmove-usuario63.tar.gz cpmove-usuario64.tar.gz cpmove-usuario65.tar.gz cpmove-usuario66.tar.gz cpmove-usuario67.tar.gz cpmove-usuario68.tar.gz cpmove-usuario69.tar.gz cpmove-usuario70.tar.gz cpmove-usuario71.tar.gz cpmove-usuario72.tar.gz cpmove-usuario73.tar.gz cpmove-usuario74.tar.gz cpmove-usuario75.tar.gz cpmove-usuario76.tar.gz cpmove-usuario77.tar.gz cpmove-usuario78.tar.gz cpmove-usuario79.tar.gz cpmove-usuario80.tar.gz cpmove-usuario81.tar.gz cpmove-usuario82.tar.gz cpmove-usuario83.tar.gz cpmove-usuario84.tar.gz cpmove-usuario85.tar.gz cpmove-usuario86.tar.gz cpmove-usuario87.tar.gz cpmove-usuario88.tar.gz cpmove-usuario89.tar.gz cpmove-usuario90.tar.gz cpmove-usuario91.tar.gz cpmove-usuario92.tar.gz cpmove-usuario93.tar.gz cpmove-usuario94.tar.gz cpmove-usuario95.tar.gz cpmove-usuario96.tar.gz cpmove-usuario97.tar.gz cpmove-usuario98.tar.gz cpmove-usuario99.tar.gz cpmove-usuario100.tar.gz 

Ele precisa inserir uma quebra de linha (\n) a cada 10 elementos encontrados, criando assim um arquivo com 10 linhas e cada linha com 10 elementos.

Claro que existem inúmeras formas de ser feito; Mas para que usar oito comandos se apenas um resolve ? Então, segue abaixo a linha de comando para resolução desse problema.

Linha de comando.
$ sed -i -r 's/(([a-zA-Z0-9-]+\.tar\.gz\s+){10})/\1\n/g' backups.txt
Para aumentar ou diminuir o número de elementos, basta alterar o valor entre chaves {...} para a quantidade desejada.

Listando o conteúdo novamente.
$ cat backups.txt
cpmove-usuario1.tar.gz cpmove-usuario2.tar.gz cpmove-usuario3.tar.gz cpmove-usuario4.tar.gz cpmove-usuario5.tar.gz cpmove-usuario6.tar.gz cpmove-usuario7.tar.gz cpmove-usuario8.tar.gz cpmove-usuario9.tar.gz cpmove-usuario10.tar.gz 
cpmove-usuario11.tar.gz cpmove-usuario12.tar.gz cpmove-usuario13.tar.gz cpmove-usuario14.tar.gz cpmove-usuario15.tar.gz cpmove-usuario16.tar.gz cpmove-usuario17.tar.gz cpmove-usuario18.tar.gz cpmove-usuario19.tar.gz cpmove-usuario20.tar.gz 
cpmove-usuario21.tar.gz cpmove-usuario22.tar.gz cpmove-usuario23.tar.gz cpmove-usuario24.tar.gz cpmove-usuario25.tar.gz cpmove-usuario26.tar.gz cpmove-usuario27.tar.gz cpmove-usuario28.tar.gz cpmove-usuario29.tar.gz cpmove-usuario30.tar.gz 
cpmove-usuario31.tar.gz cpmove-usuario32.tar.gz cpmove-usuario33.tar.gz cpmove-usuario34.tar.gz cpmove-usuario35.tar.gz cpmove-usuario36.tar.gz cpmove-usuario37.tar.gz cpmove-usuario38.tar.gz cpmove-usuario39.tar.gz cpmove-usuario40.tar.gz 
cpmove-usuario41.tar.gz cpmove-usuario42.tar.gz cpmove-usuario43.tar.gz cpmove-usuario44.tar.gz cpmove-usuario45.tar.gz cpmove-usuario46.tar.gz cpmove-usuario47.tar.gz cpmove-usuario48.tar.gz cpmove-usuario49.tar.gz cpmove-usuario50.tar.gz 
cpmove-usuario51.tar.gz cpmove-usuario52.tar.gz cpmove-usuario53.tar.gz cpmove-usuario54.tar.gz cpmove-usuario55.tar.gz cpmove-usuario56.tar.gz cpmove-usuario57.tar.gz cpmove-usuario58.tar.gz cpmove-usuario59.tar.gz cpmove-usuario60.tar.gz 
cpmove-usuario61.tar.gz cpmove-usuario62.tar.gz cpmove-usuario63.tar.gz cpmove-usuario64.tar.gz cpmove-usuario65.tar.gz cpmove-usuario66.tar.gz cpmove-usuario67.tar.gz cpmove-usuario68.tar.gz cpmove-usuario69.tar.gz cpmove-usuario70.tar.gz 
cpmove-usuario71.tar.gz cpmove-usuario72.tar.gz cpmove-usuario73.tar.gz cpmove-usuario74.tar.gz cpmove-usuario75.tar.gz cpmove-usuario76.tar.gz cpmove-usuario77.tar.gz cpmove-usuario78.tar.gz cpmove-usuario79.tar.gz cpmove-usuario80.tar.gz 
cpmove-usuario81.tar.gz cpmove-usuario82.tar.gz cpmove-usuario83.tar.gz cpmove-usuario84.tar.gz cpmove-usuario85.tar.gz cpmove-usuario86.tar.gz cpmove-usuario87.tar.gz cpmove-usuario88.tar.gz cpmove-usuario89.tar.gz cpmove-usuario90.tar.gz 
cpmove-usuario91.tar.gz cpmove-usuario92.tar.gz cpmove-usuario93.tar.gz cpmove-usuario94.tar.gz cpmove-usuario95.tar.gz cpmove-usuario96.tar.gz cpmove-usuario97.tar.gz cpmove-usuario98.tar.gz cpmove-usuario99.tar.gz cpmove-usuario100.tar.gz

Observação: A expressão regular '[a-zA-Z0-9-]+\.tar\.gz' foi montada para satisfazer os critérios da nomenclatura 'cpmove-usuarioXX.tar.gz'; cabendo ao usuário adequá-la a suas necessidades.

Dúvida enviada por: Márcio mendes
Via formulário: X da Questão

Comentários

Contato

Nome

E-mail *

Mensagem *