Expandir uma sequência numérica incluindo caracteres (Shell)

Escrever sequências numéricas no Shell é fácil. Você pode utilizar o comando “seq” para escrever sequências numéricas, inclusive formatando a quantidade de dígitos. Por exemplo:

1) Sequência de 1 a 5, com passo igual a 1:

$ seq 1 5
 1
 2
 3
 4
 5

2) Sequência de 1 a 5, com passo igual a 2:

$ seq 1 2 5
 1
 3
 5

3) Sequência de 1 a 5, com passo igual a 1, com dois dígitos:

$ seq -f %02g 1 5
 01
 02
 03
 04
 05

E assim por diante. Neste último exemplo, se quiséssemos escrever o resultado da sequência com três dígitos, bastaria fazer “seq -f %03g 1 5”, ou seja, basta alterar o modificador.

Mas, e se quiséssemos escrever uma sequência formatada com caracteres, como em “01N 02N 03N”? Neste caso, é mais fácil utilizar o comando de expansão “{..}”. Por exemplo:

4) Sequência de 1 a 5, com passo igual a 1:

$ echo {1..5}
1 2 3 4 5

5) Sequência de 1 a 5, com passo igual a 2:

$ echo {1..5..2}
1 3 5

6) Sequência de 1 a 5, compasso igual a 1, com dois dígitos:

$ echo 0{1..5}
01 02 03 04 05

7) Sequência de 1 a 5, com passo igual a 2, com três dígitos sendo o último, um carácter:

$ echo 0{1..5..2}A
01A 03A 05A

Muito fácil, não é? Este tipo de estrutura de expansão faz parte do Bash e ele pode ser utilizado apenas com caracteres também. Em inglês, o termo é “Bash Brace Expansion”. Experimente também o comando: “echo {a..z}”.

É isso!

Referências (e muito mais exemplos):

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s