A seq parancs használata Linuxon

A Linux seq parancs egy szempillantás alatt számlistákat generál. De hogyan lehet ezt a funkciót a gyakorlatban hasznosítani? Megmutatjuk, hogyan jöhet jól neked a seq.

A következő parancs

Első pillantásra a Linux seq parancs valami furcsaságnak tűnik. Lehetővé teszi a generálást számsorozatok gyorsan és ennyi! A kulcsszó itt azonban a „gyorsan”. Egy pillanat múlva látni fogja, milyen gyorsan fut ez a kis parancs.

Függetlenül attól, hogy hogyan jönnek létre, mennyire hasznos egy számlista? A seq parancsot 1985-ben adták hozzá a Unix 8. kiadásához. Azóta is ott van, tehát valami érdemlegeset kell tennie.

A Unix filozófiája az, hogy tele van apró segédprogramokkal, amelyek egy dolgot csinálnak, és jól csinálják. Ennek a filozófiának az egyik központi tétele, hogy olyan programokat írjunk, amelyek más programoktól fogadnak bemenetet. Ez természetesen azt is jelenti, hogy ezeknek a programoknak olyan kimenetet kell generálniuk, amelyet más programok bemenetként használhatnak.

A seq parancs akkor válik önállóvá, ha más parancsokkal együtt használjuk, amelyek a kimenetét használják, akár csöveken, akár parancssori kiterjesztésen keresztül.

Alap lista generálás

Ha egyetlen számmal indítja el a seq-et parancssori paraméterként, akkor az egytől a számig számol. Ezután kiírja a számokat a terminálablakban, soronként egy számot, az alábbiak szerint:

seq 6

A

Ha két számot ír be a parancssorba, az első a kezdőszám, a második pedig a végszám lesz, amint az alább látható:

seq 4 10

A lépések méretét egy harmadik szám megadásával állíthatja be. A kezdő és a záró számok között található. A következőt írjuk be, hogy megkérdezzük a seq-et, hogy létrehozzunk egy hatossal kezdődő, 48-ra végződő és hatos lépést használó számlistát:

seq 6 6 48

Visszafelé számolás

Azt is megkérhetjük a seq-re, hogy hozzon létre egy listát a legmagasabbtól a legalacsonyabbig. Ehhez azonban meg kell adnunk egy negatív lépést.

  Hogyan készítsünk hisztogramot a Microsoft Excelben

A következő parancs egy listát hoz létre, amely 24-től 12-ig számol 6-os lépésekben, mert a lépést negatív számként írjuk be:

seq 24 -6 12

Számlálás tizedesjegyekkel

A kezdő-, vég- és lépésszámok tizedesjegyek is lehetnek. Ha valamelyik szám tizedes, a többit is tizedesjegyként kezeli a rendszer. A következő parancs számlistát állít elő 0,2 lépéssel:

seq 1 0.2 2

A Seq

A seq hihetetlenül gyors – az egyetlen szűk keresztmetszet az, hogy mennyi időbe telik a parancs beírása a terminálablakban. A sebesség teszteléséhez kérjünk egy 250 000 számból álló listát.

A következőt gépeljük be a idő parancsot, hogy megtudja, mennyi ideig tart a folyamat befejeződése:

time seq 250000

Az eredmények a lista alatt jelennek meg. Még a közepes teljesítményű teszt-PC-n is meglepően gyors a szekvencia.

A teljes lista körülbelül 1/3 másodperc alatt létrejött és a képernyőre íródott. Ha átirányítjuk a listát egy fájlba, még a terminálablakban való gépelés túlzott terhét is elkerülhetjük.

Ehhez a következőket írjuk be:

time seq 250000 > numbers.txt

time seq 250000 > numbers.txt egy terminálablakban.”  width=”646″ height=”147″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”  onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”></p>
<div style=

A lista befejezéséhez és a fájl létrehozásához szükséges idő körülbelül 1/7 másodperc.< /p>

Elválasztó használata

Az új sorkarakter az alapértelmezett karakter, amely a listában az egyes számok között jelenik meg. Ezért függőleges listaként jelennek meg, minden szám a saját sorában. Ha szükséges, biztosíthat másik elválasztót is.

Tegyük fel például, hogy létre kell hoznia egy vesszővel tagolt listát, kettőspontokkal elosztott listát vagy bármilyen más írásjelet vagy szimbólumot. A határoló valójában egy karakterlánc, így több karaktert is használhat.

Az -s (elválasztó) opciót fogjuk használni. A következő parancs egy vesszővel tagolt listát hoz létre:

seq s, 6 6 36

Ez a parancs kettőspontot (:) használ elválasztóként:

seq -s: 6 6 36

Ez a parancs megmondja a seq-nek, hogy két kötőjelet (-) használjon elválasztóként:

seq -s-- 6 6 36

Format Strings használata

A seq parancs is támogatja C nyelvi stílusban formátumú karakterláncok. Ezek lehetővé teszik a kimenet formázását, sokkal több vezérléssel, mint egy elválasztó megadásával. Formázási karakterlánc használatához használja a -f (formátum) kapcsolót.

A következő parancs arra utasítja a seq-t, hogy nullákat használjon a kimenet két karakterre való kiegészítéséhez:

seq -f "%02g" 6

szekv -f

A karakterláncot tetszőleges szöveggel formázhatjuk, és a számot bárhová elhelyezhetjük a karakterláncban az alábbiak szerint:

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

szekv -f

Gyors módszer a padding nulla beállítására

A nulla kitöltés beállításának leggyorsabb módja a -w (egyenlő szélességű) opció használata. Ez azt utasítja a seq-nek, hogy nullákat használjon a számok kitöltéséhez, így mindegyik ugyanolyan széles, mint a legnagyobb szám.

A következő parancs 0-tól 1000-ig számol 100-as lépésekkel, és minden szám nullával lesz kitöltve:

seq -w 0 100 1000

A leghosszabb szám négy karakterből áll, így minden keskenyebb szám nullákkal lesz kitöltve az adott szélességig (még a 0-t is négy nullára tölti ki).

  Mi az a Kanban tábla, és hogyan kell használni?

Csővezetékek seq Into bc

Ha az elválasztót matematikai szimbólumként állítjuk be, és a listát beírjuk a bc parancsba, ezt megtehetjük értékelje a listán szereplő számokat.

A következő parancs létrehozza a csillagokkal elválasztott számok listáját

seq -s* 6

egytől kezdődően és hattal végződve:

seq -s* 6 | bc

Ha ezt a listát betápláljuk a bc-be, akkor a csillagok segítségével értékeli ki a listát

seq -s+ 5

szorzószimbólumként:

seq -s+ 5 | bc

Ezt más szimbólumokkal is megtehetjük. Az alábbi parancs pluszjelet (+) használ egy lista létrehozásához, amelyben az összes szám hozzáadásra kerül:

Beírjuk a következőket, hogy ezt a bc-be húzzuk, és kiértékeljük a listát: Fájlok létrehozása a következővel Az érintés parancsa

frissíti az idő- és dátumbélyegzőket

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

fájlokon. Ha a fájl nem létezik, a megérintéssel hozza létre. A touch és a seq parancssori kibővítés segítségével tematikus elnevezésű, de eltérő számozású fájlok gyűjteményét hozhatjuk létre.

ls file*

Létrehozunk egy 10 fájlból álló készletet azonos alapnévvel és különböző számmal (fájl-1.txt, fájl-2.txt, és így tovább).  A következőket írjuk be:

Ezután a következőket írjuk be a fájlok ellenőrzéséhez:

érintse meg a $(seq -f

Seq használata a Bash Loopsban

#!/bin/bash

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

  echo "The value is now: $val"

done

A Bash szkriptekben a seq-et használhatjuk a ciklusok tizedesjegyekkel történő szabályozására.

chmod +x loop.sh

Írja be a következő szöveget egy szerkesztőbe, majd mentse el „loops.sh” néven:

./loop.sh

Ezután a következőket írjuk be, hogy az új szkriptünket végrehajthatóvá tegyük:

Amikor futtatjuk a szkriptet, a ciklusszámláló kinyomtatásra kerül a terminál ablakában. Ezután beírhatjuk a következőket, hogy meglássuk, hogy a decimális hurokszámláló a ciklus minden iterációjával növekszik:

Ne feledje, hogy a seq visszafelé is számolhat; ugyanúgy használhatod ciklusokban. Szép és egyszerű Egy dolog a seq-ben, hogy nincs sok tanulási görbe. Van egy

üdítően rövid

man oldalt, de így is érdekes módon használhatod.

Mivel gyakran gyorsan kell reális méretű tesztfájlokat készítenünk, a seq-et formátum karakterlánccal használjuk. Ezután átirányítjuk a kimenetet egy olyan fájl létrehozására, amely annyi sor áladatot tartalmaz, amennyit csak akarunk.