A volte, ti imbatti in uno strumento da riga di comando che offre funzionalità limitate da solo, ma se utilizzato con altri strumenti, ti rendi conto del suo reale potenziale. Una volta che tale strumento è seq , che stampa una sequenza di numeri. In questo tutorial, discuteremo le basi di questa utilità della riga di comando utilizzando esempi di facile comprensione.
Ma prima di passare a questo, vale la pena ricordare che tutti gli esempi in questo articolo sono stati testati su una macchina Ubuntu 16.04.
Comando Linux seq
Come già accennato, il comando seq consente di stampare una sequenza di numeri. Di seguito è riportata la sua sintassi:
seq [OPTION]... LAST
seq [OPTION]... FIRST LAST
seq [OPTION]... FIRST INCREMENT LAST
Ed ecco come lo spiega la pagina man dello strumento:
Print numbers from FIRST to LAST, in steps of INCREMENT. If FIRST or
INCREMENT is omitted, it defaults to 1. That is, an omitted INCREMENT
defaults to 1 even when LAST is smaller than FIRST.
The sequence of numbers ends when the sum of the current number and
INCREMENT would become greater than LAST. FIRST, INCREMENT, and LAST
are interpreted as floating point values. INCREMENT is usually positive if
FIRST is smaller than LAST, and INCREMENT is usually negative if FIRST
is greater than LAST. FORMAT must be suitable for printing one argu?
ment of type 'double'; it defaults to %.PRECf if FIRST, INCREMENT, and
LAST are all fixed point decimal numbers with maximum precision PREC,
and to %g otherwise.
Di seguito sono riportati alcuni esempi in stile domande e risposte che dovrebbero darti un'idea migliore di come funziona il comando seq.
Q1. Come funziona il comando seq?
L'utilizzo di base è molto semplice. Tutto quello che devi fare è passare un numero a seq e lo strumento produrrà numeri di output da 1 al numero di input.
Ad esempio:
seq 8
Ovviamente puoi anche specificare il numero da cui vuoi che inizi l'output.
Ad esempio:
seq 3 8
Andando avanti, puoi anche impostare la differenza incrementale, che è 1 per impostazione predefinita. Ad esempio, se vuoi che seq stampi da 1 a 9, ma con una differenza di 2, ecco come puoi farlo:
seq 1 2 9
Q2. Come aggiungere un separatore?
Se lo desideri, puoi anche avere un separatore per migliorare l'aspetto dell'output di seq. Questa funzione è disponibile tramite -s opzione della riga di comando.
Ad esempio, il comando seguente intende utilizzare una virgola (,) come separatore:
seq -s, 1 9
T3. Come specificare il formato di output?
Il comando seq ti consente di utilizzare il FORMAT a virgola mobile in stile printf. Questa funzione è accessibile tramite -f opzione della riga di comando. La pagina man dello strumento non ha molte informazioni su come usare questa opzione, ma la pagina delle informazioni contiene i dettagli richiesti. Ecco cosa dice la pagina delle informazioni:
`-f FORMAT'
`--format=FORMAT'
Print all numbers using FORMAT. FORMAT must contain exactly one
of the `printf'-style floating point conversion specifications
`%a', `%e', `%f', `%g', `%A', `%E', `%F', `%G'. The `%' may be
followed by zero or more flags taken from the set `-+#0 '', then
an optional width containing one or more digits, then an optional
precision consisting of a `.' followed by zero or more digits.
FORMAT may also contain any number of `%%' conversion
specifications. All conversion specifications have the same
meaning as with `printf'.
The default format is derived from FIRST, STEP, and LAST. If
these all use a fixed point decimal representation, the default
format is `%.Pf', where P is the minimum precision that can
represent the output numbers exactly. Otherwise, the default
format is `%g'.
Ad esempio, puoi utilizzare questa opzione nel modo seguente:
seq -f "%02g" 6
Q4. Come usare seq con altri comandi? (Caso d'uso 1)
Supponiamo di voler eseguire l'addizione di alcuni numeri, ad esempio da 111 a 121. Ecco come puoi farlo usando seq:
expr `seq -s " + " 111 121`
Ecco il comando sopra in azione:
Q5. Come usare seq con altri comandi? (Caso d'uso 2)
Supponiamo di voler creare un gruppo di nuovi file con nomi in cui cambia solo un valore intero. Ad esempio, file1, file2, file3 e così via. Ecco come puoi farlo usando seq.
tocca $(seq -f "file%g" 1 10)
Conclusione
Quindi ora sarai d'accordo sull'utilità del comando seq. Se parli delle opzioni della riga di comando offerte da Seq, non c'è molta curva di apprendimento, solo che dovresti sapere quando e come usare il comando e le sue opzioni. Abbiamo trattato diversi casi d'uso qui:dovrebbe essere sufficiente per iniziare con lo strumento. Per ulteriori informazioni su Seq, vai alla sua pagina man.