Categories: Tecnologia

Como usar o Comando seq no Linux

Fatmawati Achmad Zaenuri / Shutterstock

O seqcomando Linux gera listas de números em um piscar de olhos. Mas como essa funcionalidade pode ser colocada em uso prático? Mostraremos como o seq pode ser útil para você.

O Comando seq

À primeira vista, o seqcomando Linux parece algo estranho. Ele permite que você gere  sequências de números  rapidamente e é isso! A palavra-chave aqui, porém, é “rapidamente”. Em um momento, você verá o quão rápido esse pequeno comando pode ser executado.

Independentemente de como eles são gerados, porém, quão útil é uma lista de números? O seqcomando foi adicionado à 8ª edição do Unix em 1985. Ele está lá desde então, então deve fazer algo que valha a pena.

A filosofia do Unix  é que ele está cheio de pequenos utilitários que fazem uma coisa e a fazem bem. Um dos princípios centrais dessa filosofia é escrever programas que aceitem entradas de outros programas. Claro, isso também significa que esses programas devem gerar saídas que podem ser usadas como entradas por outros programas.

O seqcomando ganha destaque quando é usado com outros comandos que fazem uso de sua saída, seja por meio de canais ou expansão de linha de comando.

Geração de lista básica

Se você iniciar  seqcom um único número como parâmetro de linha de comando, ele contará de um a esse número. Em seguida, ele imprime os números na janela do terminal, um número por linha, conforme mostrado abaixo:

seq 6

Se você digitar dois números na linha de comando, o primeiro será o número inicial e o segundo será o número final, conforme mostrado abaixo:

seq 4 10

Você pode definir o tamanho do passo incluindo um terceiro número. Ele fica entre os números inicial e final. Digitamos o seguinte para pedir  seqa criação de uma lista de números que começa com seis, termina com 48 e usa uma etapa de seis:

seq 6 6 48

Contando para trás

Também podemos pedir seqpara criar uma lista de números do maior ao menor. Para fazer isso, no entanto, devemos fornecer uma etapa negativa.

O comando a seguir produz uma lista que conta de 24 a 12 em etapas de 6 porque digitamos a etapa como um número negativo:

seq 24 -6 12

Contando com Decimais

Os números de início, fim e etapa também podem ser decimais. Se algum dos números for decimal, os outros também serão tratados como decimais. O seguinte comando gera uma lista de números com uma etapa de 0,2:

seq 1 0,2 2

A velocidade de seq

seqé incrivelmente rápido – o único gargalo é o tempo que você leva para digitar o comando na janela do terminal. Para testar sua velocidade, vamos pedir uma lista de 250.000 números.

Digitamos o seguinte, usando o timecomando para ver quanto tempo o processo leva para ser concluído:

tempo seq 250000

Os resultados são exibidos abaixo da lista. Mesmo em nosso PC de teste com potência moderada, seqé surpreendentemente rápido.

A lista inteira foi criada e gravada na tela em cerca de 1/3 de segundo. Se redirecionarmos a lista para um arquivo, podemos até evitar a sobrecarga de digitar na janela do terminal.

Para fazer isso, digitamos o seguinte:

tempo seq 250000> números.txt

O tempo que leva para completar a lista e criar o arquivo agora é cerca de 1/7 de segundo.

Usando um Separador

Um novo caractere de linha é o caractere padrão exibido entre cada número em uma lista. É por isso que aparecem como uma lista vertical, com cada número em sua própria linha. Se necessário, você pode fornecer outro separador.

Por exemplo, digamos que você precise criar uma lista delimitada por vírgulas, uma lista dividida por dois pontos ou qualquer outro sinal de pontuação ou símbolo. O delimitador é na verdade uma string, então você pode usar mais de um caractere.

Usaremos a -sopção (separador). O seguinte comando produzirá uma lista delimitada por vírgulas:

seq s, 6 6 36

Este comando usará dois pontos ( :) como separador:

seq -s: 6 6 36

Este comando diz seqpara usar dois hifens ( -) como separador:

seq -s-- 6 6 36

Usando strings de formato

O seqcomando também oferece suporte a strings de formato no estilo da linguagem C. Isso permite que você formate a saída com muito mais controle do que apenas especificar um separador. Para usar uma string de formato, você usa a -fopção (formatar).

O comando a seguir diz seqpara usar zeros para preencher a saída com dois caracteres:

seq -f "% 02g" 6

Podemos formatar a string com qualquer texto que quisermos e colocar o número em qualquer lugar da string, da seguinte maneira:

seq -f "Número% 02g em uma string de formato semelhante a C" 6

Uma maneira rápida de definir o preenchimento de zero

A maneira mais rápida de definir o preenchimento de zero é usar a opção  -w(largura igual). Isso diz seqpara usar zeros para preencher os números, de modo que todos tenham a mesma largura do maior número.

O comando a seguir conta de 0 a 1.000 em etapas de 100, e todos os números serão preenchidos com zeros:

seq -w 0 100 1000

O número mais longo leva quatro caracteres, portanto, todos os números mais estreitos são preenchidos com zeros nessa largura (até mesmo 0 é preenchido com quatro zeros).

Tubulação seq para bc

Definindo o separador como um símbolo matemático e canalizando a lista para o bccomando, podemos avaliar os números dessa lista .

O comando a seguir gera uma lista de números separados por asteriscos ( *), começando em um e terminando em seis:

seq -s * 6

Se alimentarmos essa lista bc, ele avalia a lista usando os asteriscos ( *) como símbolos de multiplicação:

seq -s * 6 | aC

Podemos fazer isso com outros símbolos também. O comando abaixo usa um sinal de adição ( +) para criar uma lista na qual todos os números são adicionados:

seq -s + 5

Nós digitamos o seguinte para direcionar isso bc e avaliar a lista:

seq -s + 5 | aC

Criando arquivos com seq

O touchcomando  atualiza os carimbos de hora e data nos arquivos. Se o arquivo não existir, toque em cria-o. Podemos usar a expansão da linha de comando com touche seqpara criar uma coleção de arquivos com nomes temáticos, mas numerados de forma diferente.

Criaremos um conjunto de 10 arquivos com o mesmo nome de base e um número diferente (file-1.txt, file-2.txt e assim por diante). Nós digitamos o seguinte:

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

Em seguida, digitamos o seguinte para verificar os arquivos:

arquivo ls *

Usando seq em Bash Loops

Podemos usar seqem scripts Bash para controlar loops com decimais.

Digite o seguinte texto em um editor e salve-o como “loops.sh”:

#! / bin / bash

  para val em $ (seq 5 0,2 6,6); Faz

  echo "O valor agora é: $ val"

feito

Em seguida, digitamos o seguinte para tornar nosso novo script executável:

chmod + x loop.sh

Quando executamos o script, o contador de loop é impresso na janela do terminal. Podemos então digitar o seguinte para ver o contador do loop decimal aumentar a cada iteração do loop:

./loop.sh

Lembre-se de que também seqpode contar para trás; você pode usar isso em loops da mesma maneira.

Bom e simples

Uma coisa seqé que não há muita curva de aprendizado. Tem uma  página refrescantemente curta man , mas você ainda pode usá-la de maneiras interessantes.

Como geralmente precisamos criar rapidamente arquivos de teste com tamanhos realistas, usamos seqcom uma string de formato. Em seguida, redirecionamos a saída para criar um arquivo contendo quantas linhas de dados fictícios quisermos.

maisroot

Recent Posts

O novo aplicativo “PC Manager” da Microsoft se parece muito com o CCleaner

Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…

7 meses ago

Como reiniciar um PS4

Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…

7 meses ago

Veja por que as reticências são tão assustadoras ao enviar mensagens de texto…

A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…

7 meses ago

O telescópio James Webb acaba de capturar os “Pilares da Criação”

A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…

7 meses ago

Você poderá baixar o Proton Drive mais cedo do que pensa

O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…

7 meses ago

Como aumentar o zoom no Photoshop

Para ver suas fotos mais de perto ou para uma edição precisa , você pode…

7 meses ago