Come usare il comando seq su Linux

Un prompt del terminale su un PC Linux.

Fatmawati Achmad Zaenuri/Shutterstock



Il Linux |_+_| comando genera elenchi di numeri in un batter d'occhio. Ma come si può mettere in pratica questa funzionalità? Ti mostreremo come seq potrebbe tornarti utile.

Il comando successivo

A prima vista, Linux |_+_| comando sembra essere qualcosa di strano. Ti permette di generare sequenze di numeri velocemente e basta! La parola chiave qui, però, è veloce. In un attimo, vedrai quanto velocemente può essere eseguito questo piccolo comando.





Indipendentemente da come vengono generati, tuttavia, quanto è utile un elenco di numeri? Il |_+_| command è stato aggiunto all'ottava edizione di Unix nel 1985. È stato lì da allora, quindi deve fare qualcosa di utile.

Il filosofia di Unix è che è pieno di piccole utilità che fanno una cosa e la fanno bene. Uno dei principi centrali di questa filosofia è scrivere programmi che accettino input da altri programmi. Naturalmente, ciò significa anche che questi programmi devono generare un output che può essere utilizzato come input da altri programmi.



Il |_+_| comando entra in gioco quando viene utilizzato con altri comandi che utilizzano il suo output, tramite pipe o espansione della riga di comando.

Generazione di elenchi di base

Se avvii |_+_| con un singolo numero come parametro della riga di comando, conta da uno a quel numero. Quindi stampa i numeri nella finestra del terminale, un numero per riga, come mostrato di seguito:

seq



Annuncio pubblicitario

Se digiti due numeri sulla riga di comando, il primo sarà il numero iniziale e il secondo sarà il numero finale, come mostrato di seguito:

seq

È possibile impostare una dimensione del passo includendo un terzo numero. Si trova tra i numeri di inizio e fine. Digitiamo quanto segue per chiedere |_+_| per creare un elenco di numeri che inizia con sei, termina con 48 e utilizza un passaggio di sei:

seq

Conteggio all'indietro

Possiamo anche chiedere |_+_| per creare un elenco di numeri dal più alto al più basso. Per fare ciò, tuttavia, dobbiamo fornire un passaggio negativo.

Il comando seguente produce un elenco che conta da 24 a 12 in passi di 6 perché digitiamo il passo come numero negativo:

seq

Contare con i decimali

Anche i numeri di inizio, fine e passaggio possono essere decimali. Se uno dei numeri è un decimale, anche gli altri vengono trattati come decimali. Il comando seguente genera un elenco di numeri con un passo di 0.2:

seq

La velocità di seq

|_+_| è incredibilmente veloce: l'unico collo di bottiglia è il tempo necessario per digitare il comando nella finestra del terminale. Per testare la sua velocità, chiediamo un elenco di 250.000 numeri.

Annuncio pubblicitario

Digitiamo quanto segue, utilizzando il seq comando per vedere quanto tempo impiega il processo per il completamento:

seq

I risultati vengono visualizzati sotto l'elenco. Anche sul nostro PC di prova moderatamente alimentato, |_+_| è sorprendentemente veloce.

L'intero elenco è stato creato e scritto sullo schermo in circa 1/3 di secondo. Se reindirizziamo l'elenco in un file, possiamo anche evitare il sovraccarico di digitare nella finestra del terminale.

Per farlo, digitiamo quanto segue:

seq

Il tempo necessario per completare l'elenco e creare il file è ora di circa 1/7 di secondo.

Utilizzo di un separatore

Un carattere di nuova riga è il carattere predefinito visualizzato tra ciascun numero in un elenco. Ecco perché appaiono come un elenco verticale, con ogni numero sulla propria riga. Se necessario, puoi fornire un altro separatore.

Annuncio pubblicitario

Ad esempio, supponiamo che tu debba creare un elenco delimitato da virgole, un elenco diviso da due punti o qualsiasi altro segno di punteggiatura o simbolo. Il delimitatore è in realtà una stringa, quindi puoi usare più di un carattere.

Useremo il |_+_| (separatore) opzione. Il seguente comando produrrà un elenco delimitato da virgole:

time

Questo comando utilizzerà i due punti (|_+_|) come separatore:

seq

Questo comando dice |_+_| per usare due trattini (|_+_|) come separatore:

-s

Utilizzo delle stringhe di formato

Il |_+_| anche il comando supporta Stile del linguaggio C stringhe di formato. Questi ti consentono di formattare l'output con molto più controllo rispetto alla semplice specifica di un separatore. Per usare una stringa di formato, usa |_+_| (formato) opzione.

Il seguente comando dice |_+_| per utilizzare gli zeri per riempire l'output con due caratteri:

:

Annuncio pubblicitario

Possiamo formattare la stringa con qualsiasi testo che ci piace e posizionare il numero ovunque nella stringa, come segue:

seq

Un modo rapido per impostare zero padding

Il modo più rapido per impostare zero padding è usare |_+_| (uguale larghezza) opzione. Questo dice |_+_| utilizzare gli zeri per riempire i numeri, in modo che abbiano tutti la stessa larghezza del numero più grande.

Il seguente comando conta da 0 a 1.000 in passi di 100 e tutti i numeri verranno riempiti con zeri:

-

Il numero più lungo richiede quattro caratteri, quindi tutti i numeri più stretti vengono riempiti con zeri fino a quella larghezza (anche 0 viene riempito con quattro zeri).

Tubazione seq in bc

Impostando il separatore come un simbolo matematico e reindirizzando l'elenco nel |_+_| comando, possiamo valutare i numeri in quella lista .

Il comando seguente genera un elenco di numeri separati da asterischi (|_+_|), che iniziano da uno e terminano con sei:

seqAnnuncio pubblicitario

Se inseriamo quella lista in |_+_|, valuta la lista usando gli asterischi (|_+_|) come simboli di moltiplicazione:

-f

Possiamo farlo anche con altri simboli. Il comando seguente utilizza un segno più (|_+_|) per creare un elenco in cui vengono aggiunti tutti i numeri:

seq

Digitiamo quanto segue per reindirizzarlo in |_+_| e valutare la lista:

-w

Creazione di file con seq

Il |_+_| comando aggiorna i timbri di data e ora su file. Se il file non esiste, tocca lo crea. Possiamo usare l'espansione della riga di comando con |_+_| e |_+_| per creare una raccolta di file con nomi tematici, ma numerati in modo diverso.

Creeremo un set di 10 file con lo stesso nome di base e un numero diverso (file-1.txt, file-2.txt e così via). Digitiamo quanto segue:

seq

Quindi, digitiamo quanto segue per controllare i file:

bc

Usare seq in Bash Loops

Possiamo usare |_+_| negli script Bash per controllare i cicli con i decimali.

Annuncio pubblicitario

Digita il seguente testo in un editor, quindi salvalo come loops.sh:

*

Successivamente, digitiamo quanto segue per rendere eseguibile il nostro nuovo script:

bc

Quando eseguiamo lo script, il contatore del ciclo viene stampato nella finestra del terminale. Possiamo quindi digitare quanto segue per vedere il contatore del ciclo decimale aumentare ad ogni iterazione del ciclo:

*

Ricorda che |_+_| può contare anche all'indietro; puoi usarlo nei loop allo stesso modo.

Bello e semplice

Una cosa su |_+_| non c'è molto di una curva di apprendimento. Ha un piacevolmente breve |_+_| pagina, ma puoi ancora usarlo in modi interessanti.

Poiché spesso abbiamo bisogno di creare rapidamente file di test con dimensioni realistiche, utilizziamo |_+_| con una stringa di formato. Quindi reindirizziamo l'output per creare un file contenente tutte le righe di dati fittizi che desideriamo.

Comandi Linux
File catrame · pv · gatto · tac · chmod · presa · differenza · sed · Con · uomo · spinto · popd · fsck · testdisk · seguito · fd · pandoc · cd · $PATH · awk · giuntura · jq · piega · unico · journalctl · coda · stato · ls · fstab · buttato fuori · meno · chgrp · chown · rev · Guarda · stringhe · genere · rinominare · cerniera lampo · decomprimere · montare · smontare · installare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · noi · nano · mkdir · a partire dal · ln · toppa · convertire · rclone · brandello · SRM
Processi alias · schermo · superiore · Bello · renice · progresso · strace · sistema · tmux · chsh · storia · in · lotto · libero · quale · dmesg · usermod · ps · chroot · xargs · tty · mignolo · lsof · vmstat · tempo scaduto · parete · · uccisione · dormire · sudo · il suo · volta · gruppoaggiungi · usermod · gruppi · lshw · spegnimento · riavviare · fermare · spegni · passwd · lscpu · crontab · Data · bg · fg
Rete netstat · ping · traceroute · ip · ss · chi è · fail2ban · bmon · voi · dito · nmap · ftp · arricciare · wget · chi · chi sono · In · iptables · ssh-keygen · ufw

IMPARENTATO: I migliori laptop Linux per sviluppatori e appassionati

LEGGI SUCCESSIVO
  • › Che cos'è la protezione anticaduta MIL-SPEC?
  • › Come trovare il tuo Spotify Wrapped 2021
  • & rsaquo; Cyber ​​Monday 2021: le migliori offerte tecnologiche
  • › La cartella del computer è 40: come la star di Xerox ha creato il desktop
  • › Funzioni e formule in Microsoft Excel: qual è la differenza?
  • › 5 siti Web che ogni utente Linux dovrebbe aggiungere ai segnalibri
Foto del profilo di Dave McKay Dave McKay
Dave McKay ha usato per la prima volta i computer quando era in voga il nastro di carta perforata, e da allora ha programmato. Dopo oltre 30 anni nel settore IT, ora è un giornalista tecnologico a tempo pieno. Durante la sua carriera ha lavorato come programmatore freelance, manager di un team internazionale di sviluppo software, project manager di servizi IT e, più recentemente, come Data Protection Officer. I suoi scritti sono stati pubblicati da howtogeek.com, cloudavvyit.com, itenterpriser.com e opensource.com. Dave è un evangelista di Linux e un sostenitore dell'open source.
Leggi la biografia completa

Articoli Interessanti