So verwenden Sie den seq-Befehl unter Linux

Der Linux-Befehl seq erzeugt im Handumdrehen Zahlenlisten. Doch wie lässt sich diese Funktionalität praktisch umsetzen? Wir zeigen Ihnen, wie seq für Sie nützlich sein könnte.

Der seq-Befehl

Auf den ersten Blick wirkt der Linux-Befehl seq etwas seltsam. Es ermöglicht Ihnen zu generieren Zahlenfolgen schnell und das wars! Das Schlüsselwort hier ist jedoch „schnell“. Gleich werden Sie sehen, wie schnell dieser kleine Befehl laufen kann.

Unabhängig davon, wie sie generiert werden, wie nützlich ist eine Liste mit Zahlen? Der Befehl seq wurde 1985 zur 8. Ausgabe von Unix hinzugefügt. Seitdem ist er immer da, also muss er etwas Sinnvolles tun.

Der Philosophie von Unix ist, dass es voller kleiner Dienstprogramme ist, die eine Sache tun und es gut machen. Einer der zentralen Grundsätze dieser Philosophie besteht darin, Programme zu schreiben, die Eingaben von anderen Programmen akzeptieren. Das bedeutet natürlich auch, dass diese Programme Output erzeugen müssen, der von anderen Programmen als Input verwendet werden kann.

Der seq-Befehl spielt seine Stärken aus, wenn er mit anderen Befehlen verwendet wird, die seine Ausgabe verwenden, entweder über Pipes oder eine Befehlszeilenerweiterung.

Grundlegende Listenerstellung

Wenn Sie seq mit einer einzelnen Zahl als Befehlszeilenparameter starten, zählt es von eins bis zu dieser Zahl. Anschließend werden die Zahlen im Terminalfenster ausgegeben, eine Zahl pro Zeile, wie unten gezeigt:

seq 6

Der

Wenn Sie zwei Zahlen in die Befehlszeile eingeben, ist die erste die Startnummer und die zweite die Endnummer, wie unten gezeigt:

seq 4 10

Sie können eine Schrittweite festlegen, indem Sie eine dritte Zahl angeben. Es befindet sich zwischen den Start- und Endnummern. Wir geben Folgendes ein, um seq aufzufordern, eine Liste von Zahlen zu erstellen, die mit sechs beginnt, bei 48 endet und einen Sechserschritt verwendet:

seq 6 6 48

Rückwärts zählen

Wir können seq auch bitten, eine Liste von Zahlen von der höchsten zur niedrigsten zu erstellen. Dazu müssen wir jedoch einen negativen Schritt liefern.

  So installieren Sie Krita unter Linux

Der folgende Befehl erzeugt eine Liste, die in 6er-Schritten von 24 bis 12 zählt, da wir den Schritt als negative Zahl eingeben:

seq 24 -6 12

Zählen mit Dezimalstellen

Die Start-, End- und Schrittnummern können auch Dezimalzahlen sein. Wenn eine der Zahlen eine Dezimalzahl ist, werden die anderen ebenfalls als Dezimalzahlen behandelt. Der folgende Befehl erzeugt eine Liste von Zahlen mit einer Schrittweite von 0,2:

seq 1 0.2 2

Die Geschwindigkeit von seq

seq ist unglaublich schnell – der einzige Engpass ist die Zeit, die Sie brauchen, um den Befehl in das Terminalfenster einzugeben. Um seine Geschwindigkeit zu testen, fragen wir nach einer Liste mit 250.000 Nummern.

Wir geben Folgendes ein, indem wir die verwenden Zeit Befehl, um zu sehen, wie lange der Vorgang dauert:

time seq 250000

Die Ergebnisse werden unterhalb der Liste angezeigt. Selbst auf unserem Test-PC mit mäßiger Leistung ist seq überraschend schnell.

Die gesamte Liste wurde in etwa 1/3 Sekunde erstellt und auf den Bildschirm geschrieben. Wenn wir die Liste in eine Datei umleiten, können wir sogar den Aufwand für das Eintippen im Terminalfenster vermeiden.

Dazu geben wir Folgendes ein:

time seq 250000 > numbers.txt

time seq 250000 > numbers.txt in einem Terminalfenster.“  width=”646″ height=”147″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”  onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”></p>
<p>Das Vervollständigen der Liste und das Erstellen der Datei dauert jetzt etwa 1/7 Sekunde.< /p> <h2-Rolle=Verwenden eines Trennzeichens

Ein Zeilenumbruchzeichen ist das Standardzeichen, das zwischen jeder Nummer in einer Liste angezeigt wird. Deshalb werden sie als vertikale Liste angezeigt, wobei jede Zahl in einer eigenen Zeile steht. Bei Bedarf können Sie ein weiteres Trennzeichen angeben.

Angenommen, Sie müssen eine durch Kommas getrennte Liste, eine durch Doppelpunkte getrennte Liste oder ein anderes Satzzeichen oder Symbol erstellen. Das Trennzeichen ist eigentlich eine Zeichenfolge, sodass Sie mehr als ein Zeichen verwenden können.

  Wie man Stellaris unter Linux spielt

Wir verwenden die Option -s (Trennzeichen). Der folgende Befehl erzeugt eine durch Kommas getrennte Liste:

seq s, 6 6 36

Dieser Befehl verwendet einen Doppelpunkt (:) als Trennzeichen:

seq -s: 6 6 36

Dieser Befehl weist seq an, zwei Bindestriche (-) als Trennzeichen zu verwenden:

seq -s-- 6 6 36

Verwenden von Formatzeichenfolgen

Der seq-Befehl unterstützt auch C-Sprachstil Zeichenfolgen formatieren. Diese ermöglichen es Ihnen, die Ausgabe mit viel mehr Kontrolle zu formatieren, als nur ein Trennzeichen anzugeben. Um eine Formatzeichenfolge zu verwenden, verwenden Sie die Option -f (Format).

Der folgende Befehl weist seq an, Nullen zu verwenden, um die Ausgabe auf zwei Zeichen aufzufüllen:

seq -f "%02g" 6

seq-f

Wir können die Zeichenfolge mit beliebigem Text formatieren und die Zahl wie folgt an einer beliebigen Stelle in der Zeichenfolge platzieren:

seq -f "Number %02g in a C-like format string" 6

seq-f

Ein schneller Weg, um Zero Padding festzulegen

Der schnellste Weg, um das Auffüllen mit Nullen festzulegen, ist die Verwendung der Option -w (gleiche Breite). Dies weist seq an, die Zahlen mit Nullen aufzufüllen, damit sie alle dieselbe Breite wie die größte Zahl haben.

Der folgende Befehl zählt von 0 bis 1.000 in 100er-Schritten, und alle Zahlen werden mit Nullen aufgefüllt:

seq -w 0 100 1000

Die längste Zahl benötigt vier Zeichen, daher werden alle schmaleren Zahlen mit Nullen auf diese Breite aufgefüllt (selbst 0 wird mit vier Nullen aufgefüllt).

Piping seq In bc

Indem wir das Trennzeichen als mathematisches Symbol setzen und die Liste in den bc-Befehl leiten, können wir das Werte die Zahlen in dieser Liste aus.

Der folgende Befehl generiert eine Liste von Zahlen, die durch Sternchen getrennt sind

seq -s* 6

beginnend bei eins und endend bei sechs:

seq -s* 6 | bc

Wenn wir diese Liste in bc einspeisen, wertet es die Liste anhand der Sternchen aus

seq -s+ 5

als Multiplikationszeichen:

seq -s+ 5 | bc

Wir können dies auch mit anderen Symbolen tun. Der folgende Befehl verwendet ein Pluszeichen (+), um eine Liste zu erstellen, in der alle Zahlen hinzugefügt werden:

Wir geben Folgendes ein, um das an bc weiterzuleiten und die Liste auszuwerten: Erstellen von Dateien mit seq Der Touch-Befehl

  So ermitteln Sie das aktuelle Benutzerkonto unter Linux

aktualisiert Zeit- und Datumsstempel

touch $(seq -f "file-%g.txt" 1 10)

auf Dateien. Wenn die Datei nicht existiert, erstellt touch sie. Wir können die Befehlszeilenerweiterung mit touch und seq verwenden, um eine Sammlung thematisch benannter, aber unterschiedlich nummerierter Dateien zu erstellen.

ls file*

Wir erstellen einen Satz von 10 Dateien mit demselben Basisnamen und einer anderen Nummer (Datei-1.txt, Datei-2.txt usw.).  Wir geben Folgendes ein:

Dann geben wir Folgendes ein, um die Dateien zu überprüfen:

berühren Sie $(seq -f

Verwenden von seq in Bash-Loops

#!/bin/bash

  for val in $(seq 5 0.2 6.6); do

  echo "The value is now: $val"

done

Wir können seq in Bash-Skripten verwenden, um Schleifen mit Dezimalstellen zu steuern.

chmod +x loop.sh

Geben Sie den folgenden Text in einen Editor ein und speichern Sie ihn dann als „loops.sh“:

./loop.sh

Als nächstes geben wir Folgendes ein, um unser neues Skript ausführbar zu machen:

Wenn wir das Skript ausführen, wird der Schleifenzähler im Terminalfenster gedruckt. Wir können dann Folgendes eingeben, um zu sehen, wie sich der Dezimalschleifenzähler mit jeder Iteration der Schleife erhöht:

Denken Sie daran, dass seq auch rückwärts zählen kann; Sie können das in Schleifen auf die gleiche Weise verwenden. Schön und einfach Eine Sache bei seq ist, dass es keine große Lernkurve gibt. Es hat ein

erfrischend kurz

Manpage, aber Sie können sie trotzdem auf interessante Weise verwenden.

Da wir oft schnell Testdateien mit realistischen Größen erstellen müssen, verwenden wir seq mit einem Formatstring. Wir leiten dann die Ausgabe um, um eine Datei zu erstellen, die so viele Zeilen mit Dummy-Daten enthält, wie wir möchten.