No Linux, você pode encontrar vários comandos com funcionalidades incomuns. Um desses comandos é seq, que produz uma sequência de números dependendo dos argumentos especificados.

Mas o que você pode fazer com um utilitário de linha de comando que lança um monte de dígitos em você? Você descobrirá neste guia.

O que é o comando seq?

Conforme mencionado acima, o comando seq no Linux gera rapidamente uma sequência de caracteres numéricos. Os usuários podem passar argumentos para o comando para gerar diferentes combinações de números. Por exemplo, você pode obter uma lista incrementada simplesmente passando um argumento adicional para seq.

Qual é o uso prático do comando? Embora o seq possa não parecer uma ferramenta poderosa em sua totalidade, você pode se beneficiar do comando implementando-o com outros utilitários do Linux. Você também pode usar seq em scripts bash para revelar seu verdadeiro poder.

Como usar o seq no Linux

Seq leva apenas alguns argumentos, o que o torna uma ferramenta fácil de aprender para qualquer pessoa.

instagram viewer

Sintaxe Básica

A sintaxe básica do comando é:

números de opções seq

...Onde opções são os sinalizadores que você pode especificar para invocar métodos diferentes do comando e números são os argumentos que você passa para gerar a sequência numérica.

Gere uma lista de números

Os argumentos Seq seguem o formato de entrada fornecido a seguir:

seq última
seq primeiro último
seq primeiro incremento último

Quando você especifica apenas um número, seq o interpreta como o limite superior da lista e gera uma sequência começando de um até o número especificado.

seq 5

O comando mencionado anteriormente produzirá o seguinte:

1
2
3
4
5

Quando seq recebe dois números como entrada, ele os interpreta como o limite inferior e o limite superior da sequência. Para gerar uma lista de números de quatro a oito:

seq 4 8

Resultado:

4
5
6
7
8

Mas quando você passa três números para o comando, ele interpreta o segundo argumento como o número do incremento. Por exemplo:

seq 3 2 13

O comando mencionado produzirá uma lista de números de três a 13 com um incremento de dois.

3
5
7
9
11
13

Adicionar um separador entre os números

Por padrão, seq usa um caractere de nova linha como separador da lista. Esta é a razão pela qual cada número da lista está em uma linha separada.

Você pode alterar este comportamento padrão e usar um separador personalizado usando o -s bandeira. Para usar o Período (.) caractere como separador:

seq -s. 3 7

Resultado:

3.4.5.6.7

Lembre-se de que alguns personagens gostam do Til (~) deve ser colocado entre aspas. Isso ocorre porque o terminal usa o Til personagem para denotar o /home diretório, e isso refletirá na saída se você não adicionar as aspas.

seq -s ~ 3 7

Resultado:

3 / home / 4 / home / 5 / home / 6 / home / 7

Por outro lado, quando você envolve o separador com aspas:

seq -s '~' 3 7

Resultado:

3~4~5~6~7

Ajuste o formato de saída

Você também pode alterar o formato da sequência de saída usando o -f bandeira. Por padrão, seq extrai o estilo de formato da entrada do usuário. Por exemplo, se você especificar os números 0,1 e 0,5, a saída padrão terá um formato de número de ponto flutuante.

seq 0,1 0,5

Resultado:

0.1
0.2
0.3
0.4
0.5

Você pode especificar um formato de saída personalizado usando as várias especificações de conversão como% a,% e,% f,% g,% A,% E,% F e% G.

Você pode usar o % f especificador se você deseja que a saída siga um formato de número de ponto flutuante.

seq-f% f 4 7

Resultado:

4.000000
5.000000
6.000000
7.000000

Para modificar a precisão até duas casas decimais:

seq -f% 0.2f 4 7

Resultado:

4.00
5.00
6.00
7.00

Você também pode transformar a saída completamente especificando um modelo de saída. Por exemplo, para obter uma lista de todos os endereços IP que começam com 192.168.5.x:

seq -f 192.168.5.% g 1 233

Resultado:

Para adicionar preenchimento à saída, você pode usar o -C bandeira. O -C flag mantém a largura da saída de acordo com o maior número especificado.

Para gerar uma sequência de números entre um e 1.000 com um incremento de 100, mantendo uma largura constante:

seq -w 1 100 1000

Resultado:

0001
0101
0201
0301
0401
0501
0601
0701
0801
0901

Obtenha a ajuda da linha de comando seq

Embora seq seja fácil de usar, às vezes os usuários podem sentir a necessidade de verifique a página de manual para o comando. O --ajuda sinalizador exibirá a página de manual seq:

seq --help

Resultado:

Exemplos Práticos

Como já mencionado, seq é usado principalmente com outros comandos do Linux, por exemplo, touch e expr.

Realizar operações matemáticas

Se você deseja adicionar ou subtrair rapidamente um determinado intervalo de números, pode fazer isso facilmente usando seq dentro expr, que é um comando do Linux que trata a entrada como uma expressão e exibe a saída correspondente.

Para somar todos os números entre um e 100:

expr `(seq -s" + "1 100)`

O comando seq gera uma saída da seguinte forma:

1 + 2 + 3 + 4 + 5 + 6...

Expr o trata como uma expressão de entrada e produz a solução.

5050

Você pode realizar outras operações matemáticas simplesmente substituindo o separador no comando seq por outros operadores.

Crie vários arquivos rapidamente

Se você deseja criar vários arquivos no Linux cujos nomes seguem um padrão semelhante, você pode fazer isso facilmente usando o comando de toque e seq.

Por exemplo, para criar 10 arquivos com o nome arquivo-x.txt, Onde x é um número de um a 10:

toque em $ (seq -f "arquivo% g.txt" 1 10)

O toque criará os arquivos para você em um piscar de olhos.

Implementando seq em Scripts

Considere que você está escrevendo um ferramenta de varredura de rede como Nmap no bash, você pode desejar obter uma lista de todas as portas abertas em uma rede. Mas, para isso, você precisa executar ping em todas as portas (65535 no total) e analisar a resposta.

Para economizar tempo, você pode escolher usar seq e gerar uma lista de endereços IP e combinações de porta que você pode usar em seu script.

Vamos supor que você deseja obter a lista de todas as portas de um dispositivo com o endereço IP 1.2.3.4. Aqui está um comando rápido para gerar a saída desejada:

seq -f 1.2.3.4:%g 1 65535

Resultado:

Você pode então usar essa saída como uma lista e percorrê-la, verificando cada porta usando seu script e analisando se está aberta ou não.

Com que rapidez seq gera os números?

Você pode estar pensando se pode obter resultados semelhantes usando um loop for no bash, por que escolher seq para a tarefa? Isso ocorre porque o verdadeiro poder do seq está em sua velocidade. Seq é mais rápido que qualquer outro comando que gere uma sequência de números no Linux.

Você pode até testar sua velocidade usando o utilitário de tempo no Linux. Vamos ver quanto tempo leva para seq gerar uma lista de um milhão de números começando com um.

tempo seq 1000000

Olhando para a saída abaixo, você pode ver que levou apenas cerca de quatro segundos para gerar uma lista de um milhão de números.

O poder da linha de comando do Linux

Seq não é a única ferramenta do Linux que se concentra fortemente na entrega de resultados rápidos e precisos. Embora você possa gerar uma lista de números usando um loop for em bash, não é uma prática recomendada, considerando o quão incrivelmente rápido o seq realmente é.

A linha de comando do Linux oferece mais controle sobre o sistema operacional e suas funcionalidades, o que também é uma razão pela qual você deve começar a usar o terminal sobre a GUI hoje.

E-mail
5 razões para escolher o terminal Linux em vez da interface gráfica do usuário

A linha de comando do Linux tem uma posição elevada quando se trata de desempenho, controle e facilidade de uso.

Leia a seguir

Tópicos relacionados
  • Linux
Sobre o autor
Deepesh Sharma (65 artigos publicados)

Deepesh é o Editor Júnior para Linux na MUO. Ele escreve conteúdo informativo na internet há mais de 3 anos. Em seu tempo livre, ele gosta de escrever, ouvir música e tocar seu violão.

Mais de Deepesh Sharma

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Mais um passo…!

Confirme seu endereço de e-mail no e-mail que acabamos de enviar.

.