Der seq-Befehl, kurz für Sequenz, wird zum Drucken einer Zahlenfolge verwendet. Die Zahlen können Ganzzahlen oder reelle Zahlen (mit Dezimalpunkten) sein.
Sehen wir uns anhand einiger Beispiele an, wie Sie diesen Befehl verwenden können.
Seq-Befehl verwenden
Sie können seq ohne Optionen verwenden, um Zahlenfolgen in 3 verschiedenen Formaten zu erzeugen.
Zahlenfolge bis zu einer Obergrenze drucken
In der einfachsten Form geben Sie eine Obergrenze für seq an und es wird die Sequenz beginnend mit 1 bis zur Obergrenze gedruckt.
seq n
Hier ist ein Beispiel:
[email protected]:~$ seq 4
1
2
3
4
Druckfolge zwischen zwei Zahlen (untere und obere Grenze)
Sie können zwei Nummern in aufsteigender Reihenfolge angeben und es wird die Sequenz beginnend mit der niedrigeren Nummer bis zur oberen gedruckt.
seq n1 n2
Sehen Sie sich dieses Beispiel an:
[email protected]:~$ seq 3 6
3
4
5
6
Drucksequenz zwischen einem Limit, aber mit benutzerdefiniertem Inkrement
Bisher war das Inkrement in der Sequenz eins. Sie können aber auch ein benutzerdefiniertes Inkrement zwischen der unteren und oberen Grenze definieren.
seq n1 inc n2
Der inkrementelle Wert kann eine Ganzzahl oder ein Dezimalwert sein.
[email protected]:~$ seq 3 0.5 6
3.0
3.5
4.0
4.5
5.0
5.5
6.0
Eine Sequenz rückwärts drucken
Ein weiterer Trick besteht darin, eine Sequenz rückwärts zu drucken. Dazu müssen Sie ein negatives Inkrement angeben.
[email protected]:~$ seq 6 -1 4
6
5
4
Ein Screenshot aller obigen Beispiele:
Was passiert, wenn Sie so etwas wie 0,7 eingeben? In diesem Fall wird die Obergrenze nicht überschritten.
[email protected]:~$ seq 3 0.7 6
3.0
3.7
4.4
5.1
5.8
Bisher haben Sie keine Optionen mit dem Befehl seq verwendet. Lassen Sie uns sie auch sehen und verwenden.
Reihenfolge mit gleicher Breite drucken
Die Option w
Mit dem seq-Befehl wird verwendet, um die gleiche Breite für die gedruckten Zahlen beizubehalten.
[email protected]:~$ seq -w 9 11
09
10
11
Druckfolge in einem bestimmten Format
Mit der Option f
können Sie die Ausgabezeile in einem bestimmten Format formatieren .
[email protected]:~$ seq -f '##%g##' 3 5
##3##
##4##
##5##
%g
wird für Standardnummern verwendet. %e
um die Zahl im Exponentialformat anzuzeigen und %f
im Fließkommaformat.
Drucksequenz mit String als Trennzeichen
Bisher wurden die Sequenzen alle vertikal gedruckt. Das liegt daran, dass das Trennzeichen standardmäßig das Zeilenumbruchzeichen ist. Sie können dies mit der Option s
ändern .
[email protected]:~$ seq -s ':' 4
1:2:3:4
Das ' vor dem Trennzeichen ist nicht notwendig, aber gut, um böse Überraschungen zu vermeiden.
Praktische Verwendung des seq-Befehls
Sie fragen sich vielleicht, was ein praktischer Nutzen dieses seq-Befehls sein könnte. Es könnte zahlreiche Situationen geben, in denen Sie es verwenden könnten.
Ein besonderes Beispiel, das mir einfällt, ist die Verwendung einer For-Schleife in Bash. Anstatt die Reihenfolge manuell in der Schleifenbedingung anzugeben, können Sie den Befehl seq verwenden.
#!/bin/bash
for i in $(seq 4 2 18)
do
echo "Number $i"
done
Wenn Sie das obige Bash-Skript ausführen, wird es die angegebene Sequenz durchlaufen und die Werte ausgeben.
[email protected]:~$ bash seq.sh
Number 4
Number 6
Number 8
Number 10
Number 12
Number 14
Number 16
Number 18
Das ist so ziemlich alles, was Sie über den seq-Befehl wissen müssen. Wenn Sie weitere Details wünschen, können Sie jederzeit die Manpage verwenden.