Connect with us

Wie man

Verwendung des Befehls seq unter Linux

So verwenden Sie Curl zum Herunterladen von Dateien über die Linux-Befehlszeile

Fatmawati Achmad Zaenuri / Shutterstock

Das Linux seq Befehl generiert im Handumdrehen Listen von Zahlen. Aber wie kann diese Funktionalität in die Praxis umgesetzt werden? Wir zeigen Ihnen, wie sich seq für Sie als nützlich erweisen kann.

Der Befehl seq

Auf den ersten Blick das Linux seq Befehl scheint etwas seltsam zu sein. Es ermöglicht Ihnen zu generieren Folgen von Zahlen schnell und das wars! Das Schlüsselwort hier lautet jedoch „schnell“. Gleich sehen Sie, wie schnell dieser kleine Befehl ausgeführt werden kann.

Unabhängig davon, wie sie generiert werden, wie nützlich ist eine Liste von Zahlen? Das seq Befehl wurde 1985 zur 8. Ausgabe von Unix hinzugefügt. Es ist seitdem dort, also muss es etwas tun, das sich lohnt.

Das 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 ist das Schreiben von Programmen, die Eingaben von anderen Programmen akzeptieren. Das bedeutet natürlich auch, dass diese Programme eine Ausgabe generieren müssen, die von anderen Programmen als Eingabe verwendet werden kann.

Das seq Der Befehl kommt zur Geltung, wenn er mit anderen Befehlen verwendet wird, die seine Ausgabe entweder über Pipes oder über die Befehlszeilenerweiterung verwenden.

Grundlegende Listenerstellung

Wenn Sie starten seq Mit einer einzelnen Zahl als Befehlszeilenparameter zählt sie von eins bis zu dieser Zahl. Anschließend werden die Nummern im Terminalfenster gedruckt, eine Nummer pro Zeile, wie unten gezeigt:

seq 6

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 Schrittgröße festlegen, indem Sie eine dritte Zahl einfügen. Es befindet sich zwischen den Start- und Endnummern. Wir geben Folgendes ein, um zu fragen seq So erstellen Sie eine Liste mit Zahlen, die mit sechs beginnt, bei 48 endet und einen Schritt von sechs verwendet:

seq 6 6 48

Rückwärts zählen

Wir können auch fragen seq um eine Liste von Zahlen vom höchsten zum niedrigsten zu erstellen. Dazu müssen wir jedoch einen negativen Schritt bereitstellen.

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

seq 24 -6 12

Mit Dezimalstellen zählen

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

seq 1 0.2 2

Die Geschwindigkeit von seq

seq ist unglaublich schnell – der einzige Engpass ist die Zeit, die Sie benötigen, um den Befehl in das Terminalfenster einzugeben. Um die Geschwindigkeit zu testen, fordern wir eine Liste mit 250.000 Zahlen an.

Wir geben Folgendes mit ein time Befehl, um zu sehen, wie lange der Vorgang dauert:

time seq 250000

Die Ergebnisse werden unter der Liste angezeigt. Selbst auf unserem mäßig leistungsfähigen Test-PC seq ist überraschend schnell.

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

Dazu geben wir Folgendes ein:

time seq 250000 > numbers.txt

Die Zeit, die zum Vervollständigen der Liste und zum Erstellen der Datei benötigt wird, beträgt jetzt etwa 1/7 Sekunde.

Separator verwenden

Ein neues Zeilenzeichen ist das Standardzeichen, das zwischen den einzelnen Zahlen in einer Liste angezeigt wird. Aus diesem Grund werden sie als vertikale Liste angezeigt, wobei jede Zahl in einer eigenen Zeile steht. Bei Bedarf können Sie ein weiteres Trennzeichen bereitstellen.

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

Wir werden das benutzen -s Option (Trennzeichen). Der folgende Befehl erstellt eine durch Kommas getrennte Liste:

seq s, 6 6 36

Dieser Befehl verwendet einen Doppelpunkt (:) als Trennzeichen:

seq -s: 6 6 36

Dieser Befehl sagt seq zwei Bindestriche verwenden (-) als Trennzeichen:

seq -s-- 6 6 36

Formatzeichenfolgen verwenden

Das seq Befehl unterstützt auch C Sprachstil Zeichenfolgen formatieren. Mit diesen können Sie die Ausgabe mit viel mehr Kontrolle formatieren, als nur ein Trennzeichen anzugeben. Um eine Formatzeichenfolge zu verwenden, verwenden Sie die -f Option (Format).

Der folgende Befehl sagt seq So verwenden Sie Nullen, um die Ausgabe auf zwei Zeichen aufzufüllen:

seq -f "%02g" 6

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

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

Ein schneller Weg, um Zero Padding einzustellen

Der schnellste Weg, um die Nullpolsterung einzustellen, ist die Verwendung von -w Option (gleiche Breite). Das sagt seq Verwenden Sie Nullen, um die Zahlen aufzufüllen, damit sie alle die gleiche Breite wie die größte Zahl haben.

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

seq -w 0 100 1000

Die längste Zahl besteht aus vier Zeichen, daher werden alle schmaleren Zahlen mit Nullen bis zu dieser Breite aufgefüllt (sogar 0 wird mit vier Nullen aufgefüllt).

Rohrleitung seq in bc

Durch Setzen des Trennzeichens als mathematisches Symbol und Weiterleiten der Liste in die bc Befehl können wir Bewerten Sie die Zahlen in dieser Liste.

Der folgende Befehl generiert eine Liste von Zahlen, die durch Sternchen getrennt sind (*), beginnend um eins und endend mit sechs:

seq -s* 6

Wenn wir diese Liste einspeisen bcbewertet die Liste anhand der Sternchen (*) als Multiplikationssymbole:

seq -s* 6 | 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:

seq -s+ 5

Wir geben Folgendes ein, um das weiterzuleiten bc und bewerten Sie die Liste:

seq -s+ 5 | bc

Dateien erstellen mit seq

Das touch Befehl aktualisiert Zeit- und Datumsstempel auf Dateien. Wenn die Datei nicht vorhanden ist, wird sie durch Berühren erstellt. Wir können die Befehlszeilenerweiterung mit verwenden touch und seq um eine Sammlung thematisch benannter, aber unterschiedlich nummerierter Dateien zu erstellen.

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:

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

Anschließend geben wir Folgendes ein, um die Dateien zu überprüfen:

ls file*

Verwenden von seq in Bash Loops

Wir können benutzen seq in Bash-Skripten zum Steuern von Schleifen mit Dezimalstellen.

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

#!/bin/bash

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

  echo "The value is now: $val"

done

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

chmod +x loop.sh

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 Zähler der Dezimalschleife mit jeder Iteration der Schleife erhöht:

./loop.sh

Erinnere dich daran seq kann auch rückwärts zählen; Sie können dies in Schleifen auf die gleiche Weise verwenden.

Schön und einfach

Eine Sache über seq gibt es nicht viel von einer Lernkurve. Es hat ein erfrischend kurz man Seite, aber Sie können es immer noch auf interessante Weise verwenden.

Da wir häufig schnell Testdateien mit realistischen Größen erstellen müssen, verwenden wir seq mit einer Formatzeichenfolge. Anschließend leiten wir die Ausgabe um, um eine Datei zu erstellen, die so viele Zeilen Dummy-Daten enthält, wie wir möchten.

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia