Manchmal stoßen Sie auf ein Befehlszeilentool, das für sich genommen nur eingeschränkte Funktionen bietet, aber wenn Sie es mit anderen Tools verwenden, erkennen Sie sein tatsächliches Potenzial. Ein solches Tool ist seq , die eine Folge von Zahlen ausgibt. In diesem Tutorial werden wir die Grundlagen dieses Befehlszeilenprogramms anhand leicht verständlicher Beispiele besprechen.
Aber bevor wir darauf eingehen, ist es erwähnenswert, dass alle Beispiele in diesem Artikel auf einem Ubuntu 16.04-Rechner getestet wurden.
Linux-seq-Befehl
Wie bereits erwähnt, können Sie mit dem seq-Befehl eine Zahlenfolge drucken. Es folgt die Syntax:
seq [OPTION]... LAST
seq [OPTION]... FIRST LAST
seq [OPTION]... FIRST INCREMENT LAST
Und so erklärt es die Manpage des Tools:
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.
Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln sollen, wie der seq-Befehl funktioniert.
Q1. Wie funktioniert der seq-Befehl?
Die grundlegende Verwendung ist sehr einfach. Sie müssen lediglich eine Zahl an seq übergeben, und das Tool erzeugt Ausgangszahlen von 1 bis zur Eingangszahl.
Zum Beispiel:
seq 8
Natürlich können Sie auch die Nummer angeben, ab der die Ausgabe beginnen soll.
Zum Beispiel:
seq 3 8
Weiter können Sie auch die inkrementelle Differenz einstellen, die standardmäßig 1 ist. Wenn Sie zum Beispiel möchten, dass seq von 1 bis 9 druckt, aber mit einer Differenz von 2, dann können Sie das folgendermaßen tun:
seq 1 2 9
Q2. Wie füge ich ein Trennzeichen hinzu?
Wenn Sie möchten, können Sie auch ein Trennzeichen verwenden, um die seq-Ausgabe besser aussehen zu lassen. Diese Funktion ist über das -s verfügbar Befehlszeilenoption.
Der folgende Befehl beabsichtigt beispielsweise, ein Komma (,) als Trennzeichen zu verwenden:
seq -s, 1 9
Q3. Wie wird das Ausgabeformat angegeben?
Mit dem seq-Befehl können Sie das Gleitkomma-FORMAT im printf-Stil verwenden. Auf diese Funktion kann über -f zugegriffen werden Befehlszeilenoption. Die Manpage des Tools enthält nicht viele Informationen zur Verwendung dieser Option, aber die Infoseite enthält die erforderlichen Details. Folgendes steht auf der Infoseite:
`-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'.
Sie können diese Option beispielsweise folgendermaßen verwenden:
seq -f "%02g" 6
Q4. Wie verwende ich seq mit anderen Befehlen? (Anwendungsfall 1)
Angenommen, Sie möchten einige Zahlen addieren, z. B. von 111 bis 121. So können Sie dies mit seq tun:
expr `seq -s " + " 111 121`
Hier ist der obige Befehl in Aktion:
F5. Wie verwende ich seq mit anderen Befehlen? (Anwendungsfall 2)
Angenommen, Sie möchten eine Reihe neuer Dateien mit Namen erstellen, bei denen sich nur ein ganzzahliger Wert ändert. Beispiel:Datei1, Datei2, Datei3 usw. So können Sie dies mit seq.
tuntouch $(seq -f "file%g" 1 10)
Schlussfolgerung
Jetzt werden Sie also zustimmen, wie nützlich der seq-Befehl ist. Wenn Sie über die Befehlszeilenoptionen sprechen, die Seq bietet, gibt es keine große Lernkurve, nur dass Sie wissen sollten, wann und wie Sie den Befehl und seine Optionen verwenden. Wir haben hier mehrere Anwendungsfälle behandelt - sollte ausreichen, um Ihnen den Einstieg in das Tool zu erleichtern. Weitere Informationen zu Seq finden Sie auf der Manpage.