Op Linux vind je verschillende commando's met ongebruikelijke functionaliteiten. Een zo'n opdracht is seq, die een reeks getallen uitvoert, afhankelijk van de opgegeven argumenten.

Maar wat kun je in vredesnaam doen met een opdrachtregelprogramma dat een hoop cijfers naar je gooit? In deze gids kom je erachter.

Wat is het seq-commando?

Zoals hierboven vermeld, genereert de opdracht seq in Linux snel een reeks numerieke tekens. Gebruikers kunnen argumenten aan de opdracht doorgeven om verschillende combinaties van getallen te genereren. U kunt bijvoorbeeld een verhoogde lijst krijgen door simpelweg een extra argument door te geven aan seq.

Wat is echter het praktische nut van het commando? Hoewel seq in zijn geheel misschien geen krachtig hulpmiddel lijkt, kunt u profiteren van het commando door het te implementeren met andere Linux-hulpprogramma's. U kunt ook gebruik maken van seq in bash-scripts om zijn ware kracht te onthullen.

Hoe seq te gebruiken in Linux

Seq heeft maar een paar argumenten nodig, waardoor het voor iedereen een gemakkelijk te leren tool is.

instagram viewer

Basissyntaxis

De basissyntaxis van de opdracht is:

volgende opties nummers

...waar opties zijn de vlaggen die u kunt specificeren om verschillende methoden van de opdracht aan te roepen en nummers zijn de argumenten die u doorgeeft om de numerieke reeks te genereren.

Een lijst met nummers genereren

Seq-argumenten volgen het onderstaande invoerformaat:

volgende laatste
volgende eerste laatste
seq eerste stap laatste

Wanneer u slechts één nummer opgeeft, interpreteert seq dit als de bovengrens voor de lijst en genereert een reeks vanaf één tot het opgegeven nummer.

volgende 5

De bovengenoemde opdracht geeft het volgende weer:

1
2
3
4
5

Wanneer seq twee getallen als invoer ontvangt, interpreteert het deze als de ondergrens en bovengrens voor de reeks. Een lijst met getallen van vier tot acht genereren:

volgende 4 8

Uitgang:

4
5
6
7
8

Maar wanneer u drie getallen doorgeeft aan de opdracht, interpreteert deze het tweede argument als het ophogingsgetal. Bijvoorbeeld:

volgende 3 2 13

De bovengenoemde opdracht geeft een lijst met getallen vanaf drie tot en met 13 met een toename van twee.

3
5
7
9
11
13

Een scheidingsteken tussen cijfers toevoegen

Standaard gebruikt seq een teken voor een nieuwe regel als scheidingsteken voor de lijst. Dit is de reden waarom elk nummer in de lijst op een aparte regel staat.

U kunt dit standaardgedrag wijzigen en een aangepast scheidingsteken gebruiken met de -s vlag. Om de. te gebruiken Periode (.) teken als scheidingsteken:

volgende -s. 3 7

Uitgang:

3.4.5.6.7

Houd er rekening mee dat sommige karakters zoals de Tilde (~) moet tussen aanhalingstekens staan. Dit komt omdat de terminal de Tilde teken om de. aan te duiden /home directory, en dat zou in de uitvoer worden weerspiegeld als u de aanhalingstekens niet toevoegt.

volgende -s ~ 3 7

Uitgang:

3/thuis/4/thuis/5/thuis/6/thuis/7

Aan de andere kant, wanneer u het scheidingsteken omwikkelt met aanhalingstekens:

volgende -s '~' 3 7

Uitgang:

3~4~5~6~7

Tweak het uitvoerformaat

U kunt het formaat voor de uitvoervolgorde ook wijzigen met de -f vlag. Standaard haalt seq de opmaakstijl uit de gebruikersinvoer. Als u bijvoorbeeld de getallen 0.1 en 0.5 opgeeft, heeft de standaarduitvoer een getalnotatie met drijvende komma.

volgende 0,1 0,5

Uitgang:

0.1
0.2
0.3
0.4
0.5

U kunt een aangepast uitvoerformaat specificeren met behulp van de verschillende conversiespecificaties zoals %a, %e, %f, %g, %A, %E, %F en %G.

U kunt de %f specificeerder als u wilt dat de uitvoer een getalnotatie met drijvende komma volgt.

seq-f %f 4 7

Uitgang:

4.000000
5.000000
6.000000
7.000000

Om de precisie tot twee decimalen te wijzigen:

volgende -f %0.2f 4 7

Uitgang:

4.00
5.00
6.00
7.00

U kunt de uitvoer ook volledig transformeren door een uitvoersjabloon op te geven. Om bijvoorbeeld een lijst te krijgen van alle IP-adressen die beginnen met 192.168.5.x:

seq -f 192.168.5.%g 1 233

Uitgang:

Om opvulling aan de uitvoer toe te voegen, kunt u de -w vlag. De -w flag handhaaft de breedte van de uitvoer in overeenstemming met het grootste opgegeven aantal.

Ga als volgt te werk om een ​​reeks getallen tussen één en 1.000 te genereren met een stapgrootte van 100 met behoud van een constante breedte:

volgende -w 1 100 1000

Uitgang:

0001
0101
0201
0301
0401
0501
0601
0701
0801
0901

Verkrijg seq Command Line Help

Hoewel seq gemakkelijk te gebruiken is, kunnen gebruikers soms de behoefte voelen om: controleer de handleiding voor het commando. De --helpen vlag zal de volgende man-pagina weergeven:

volgende --help

Uitgang:

Praktijkvoorbeelden

Zoals eerder vermeld, wordt seq voornamelijk gebruikt met andere Linux-commando's, bijvoorbeeld touch en expr.

Wiskundige bewerkingen uitvoeren

Als u snel een bepaald bereik van getallen wilt optellen of aftrekken, kunt u dit eenvoudig doen door seq inside te gebruiken expr, wat een Linux-opdracht is die de invoer als een uitdrukking behandelt en de bijbehorende uitvoer weergeeft.

Om alle getallen tussen één en 100 op te tellen:

expr `(seq -s " + " 1 100)`

De opdracht seq genereert als volgt een uitvoer:

1 + 2 + 3 + 4 + 5 + 6...

Expr behandelt het als een invoerexpressie en geeft de oplossing weer.

5050

U kunt andere wiskundige bewerkingen uitvoeren door simpelweg het scheidingsteken in het seq-commando te vervangen door andere operators.

Snel meerdere bestanden maken

Als u meerdere bestanden op Linux wilt maken waarvan de namen een soortgelijk patroon volgen, kunt u dit eenvoudig doen met het aanraakcommando en volg.

Om bijvoorbeeld 10 bestanden te maken met de naam bestand-x.txt, waar X is een getal van één tot 10:

raak $(seq -f "bestand%g.txt" 1 10) aan

Touch maakt de bestanden in een oogwenk voor u aan.

seq implementeren in scripts

Bedenk dat je schrijft a netwerkscannertool zoals Nmap in bash wil je misschien een lijst krijgen van alle open poorten in een netwerk. Maar daarvoor moet je elke poort pingen (65535 in totaal) en het antwoord analyseren.

Om wat tijd te besparen, kunt u ervoor kiezen om seq te gebruiken en een lijst met IP-adressen en poortcombinaties te genereren die u in uw script kunt gebruiken.

Laten we aannemen dat u de lijst met alle poorten van een apparaat met het IP-adres wilt krijgen 1.2.3.4. Hier is een snelle opdracht om de gewenste uitvoer te genereren:

volgende -f 1.2.3.4:%g 1 65535

Uitgang:

U kunt deze uitvoer vervolgens als een lijst gebruiken en er doorheen bladeren, elke poort controleren met uw script en analyseren of deze open is of niet.

Hoe snel genereert seq de nummers?

Je denkt misschien als je vergelijkbare resultaten kunt bereiken met een for-lus in bash, waarom zou je dan seq voor de taak kiezen? Dit komt omdat de echte kracht van seq in de snelheid ligt. Seq is sneller dan elk ander commando dat een reeks getallen genereert op Linux.

Je kunt zelfs de snelheid testen met behulp van het tijdhulpprogramma op Linux. Laten we eens kijken hoeveel tijd het kost voor seq om een ​​lijst van één miljoen nummers te genereren, beginnend bij één.

tijdvolgorde 1000000

Als je naar de onderstaande uitvoer kijkt, kun je zien dat het slechts ongeveer vier seconden duurde om een ​​lijst met een miljoen nummers te genereren.

De kracht van de Linux-opdrachtregel

Seq is niet de enige tool in Linux die zich sterk richt op het leveren van snelle en nauwkeurige resultaten. Terwijl u een lijst met nummers kunt genereren met een for-lus in bash, het is geen aanbevolen praktijk gezien hoe razendsnel seq werkelijk is.

De Linux-opdrachtregel geeft je meer controle over het besturingssysteem en zijn functionaliteiten, wat ook een reden is waarom je vandaag de terminal via GUI zou moeten gaan gebruiken.

E-mail
5 redenen om de Linux-terminal te kiezen boven de GUI

De Linux-opdrachtregel heeft een hoge status als het gaat om prestaties, controle en gebruiksgemak.

Lees volgende

Gerelateerde onderwerpen
  • Linux
Over de auteur
Deepesh Sharma (65 artikelen gepubliceerd)

Deepesh is de Junior Editor voor Linux bij MUO. Hij schrijft al meer dan 3 jaar informatieve content op internet. In zijn vrije tijd houdt hij van schrijven, naar muziek luisteren en gitaar spelen.

Meer van Deepesh Sharma

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Nog een stap…!

Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.

.