Příkaz seq vytiskne posloupnost celých nebo reálných čísel, která je vhodná pro propojení s jinými programy. Příkaz seq se může hodit v různých dalších příkazech a smyčkách pro generování posloupnosti čísel.
Syntaxe
Obecná syntaxe příkazu „seq“ je:
# seq [options] specification
Příklady
1. Chcete-li jednoduše vytisknout sekvenci čísel začínajících od 1, použijte níže uvedený příkaz:
# seq 4 1 2 3 4
Ve výchozím nastavení zahájí příkaz seq tisk posloupnosti čísel od 1, pokud není uvedeno jinak.
2. Můžete také zadat horní a dolní limit pro posloupnost čísel generovaných příkazem „seq“:
# seq 6 9 6 7 8 9
3. Pokud potřebujeme vygenerovat nějakou další aritmetickou posloupnost, můžeme použít příkaz seq, jehož syntaxe je uvedena zde:
# seq [start] [incr] [stop]
Tím se vygenerují čísla start, start + incr, start + incr + incr …, až do konce. Pojďme to pochopit na příkladu:
# seq 1 3 10 1 4 7 10
Zde začínáme s 1 a pokaždé ji zvyšujeme o 3, dokud nezískáme hodnotu menší nebo rovnou 10. Hodnota pro start, incr a stop může být kladná nebo záporná celá čísla nebo také desetinná čísla s plovoucí desetinnou čárkou.
4. Podívejme se na příklad záporného přírůstku, který v podstatě vytiskne sekvenci pozpátku. Například:
# seq 10 -2 4 10 8 6 4
Formátování výstupu příkazu „seq“
Výstup příkazu seq můžete formátovat pomocí různých argumentů příkazu.
1. Jak jste si všimli u všech příkazů výše, výstupem je vždy sekvence čísel oddělených novým řádkem. No, můžete si to změnit, jak chcete. Použijte volbu „-s“ příkazu seq, jak je uvedeno níže:
# seq -s "|" 5 1|2|3|4|5
2. Výstup můžete také naformátovat pomocí volby „-f“. K tisku každého čísla používá formát stylu printf. Můžete použít krycí znaky jako E, e, f, G, g a % s „-f“, jak je uvedeno níže. Výchozí hodnota je %g.
# seq -f '##%g##' 1 5 ##1## ##2## ##3## ##4## ##5##
# seq -f %f 1 5 1.000000 2.000000 3.000000 4.000000 5.000000
3. Můžete také vyrovnat šířky všech čísel podle potřeby doplněním nulami. Tato volba nemá žádný účinek s volbou -f.
# seq -w 1 10 01 02 03 04 05 06 07 08 09 10
Použití seq v Bash smyčkách
Můžeme také použít seq se smyčkou for pomocí substituce příkazů, jak je znázorněno zde:
$ for i in $(seq 1 0.5 4) do echo "The number is $i" done
Výstup:
The number is 1 The number is 1.5 The number is 2 The number is 2.5 The number is 3 The number is 3.5 The number is 4