Weboldal keresés

A 6 legjobb CLI-eszköz egyszerű szöveges adatok keresésére reguláris kifejezések használatával


Ez az útmutató bemutatja a legjobb parancssori eszközöket, amelyek a szövegfájlokban található megfelelő karakterláncok vagy minták keresésére szolgálnak. Ezeket az eszközöket általában reguláris kifejezésekkel – rövidítve REGEXként – használják, amelyek egyedi karakterláncok a keresési minták leírására.

Minden további nélkül merüljünk bele.

1. Grep Command

Az első helyen a grep segédprogram áll, amely a Global Regular Expression Print rövidítése, egy hatékony parancssori eszköz, amely hasznos egy adott karakterlánc vagy minta keresésekor egy fájlban. .

A Grep alapértelmezés szerint modern Linux disztribúciókkal érkezik, és rugalmasságot biztosít a különféle keresési eredmények visszaadásához. A grep segítségével számos műveletet hajthat végre, például:

  • Karakterláncok vagy megfelelő minták keresése egy fájlban.
  • Karakterláncok vagy egyező minták keresése a Gzip fájlokban.
  • Számolja meg a karakterlánc egyezések számát.
  • Nyomtassa ki a karakterláncot vagy mintát tartalmazó sorszámokat.
  • Rekurzív keresés a karakterláncra a könyvtárakban.
  • Végezzen fordított keresést (azaz a keresési feltételeknek nem megfelelő karakterláncok eredményeinek megjelenítése).
  • A karakterláncok keresésekor hagyja figyelmen kívül a kis- és nagybetűk érzékenységét.

A grep parancs használatának szintaxisa meglehetősen egyszerű:

grep pattern FILE

Például a „Linux” karakterlánc kereséséhez egy fájlban, mondjuk a hello.txt fájlban, miközben figyelmen kívül hagyja a kis- és nagybetűk érzékenységét, futtassa a következő parancsot:

grep -i Linux hello.txt

A grep funkcióval használható további lehetőségek megtekintéséhez egyszerűen olvassa el cikkünket, amely példákat mutat be a fejlettebb grep parancsokra.

2. sed Parancs

A Sed – a Stream Editor rövidítése – egy másik hasznos parancssori eszköz a szövegfájl szövegének kezelésére. A Sed nem interaktív módon keres, szűr és cserél egy adott fájlban található karakterláncokat.

Alapértelmezés szerint a sed parancs a kimenetet az STDOUT (Standard Out) formátumban nyomtatja ki, ami azt jelenti, hogy a végrehajtás eredménye a terminálon lesz kinyomtatva. fájlba mentve.

A Sed parancs a következőképpen kerül meghívásra:

sed -OPTIONS command [ file to be edited ]

Ha például a „Unix” összes példányát a „Linux”-ra szeretné lecserélni, hívja meg a következő parancsot:

sed 's/Unix/Linux' hello.txt

Ha a kimenetet át szeretné irányítani ahelyett, hogy a terminálra nyomtatná, használja a ( > ) átirányítási jelet az ábrán látható módon.

sed 's/Unix/Linux' hello.txt > output.txt

A parancs kimenetét a rendszer az output.txt fájlba menti, ahelyett, hogy a képernyőre nyomtatná.

A további használható opciók megtekintéséhez tekintse meg még egyszer a kézikönyvoldalakat.

man sed

3. Ack Command

Az Ack egy gyors és hordozható, Perl nyelven írt parancssori eszköz. Az Ack a grep segédprogram barátságos helyettesítője, és az eredményeket tetszetős módon adja ki.

Az Ack parancs megkeresi a fájlban vagy könyvtárban azokat a sorokat, amelyek a keresési feltételeknek megfelelőt tartalmazzák. Ezután kiemeli a megfelelő karakterláncot a sorokban.
Az Ack képes megkülönböztetni a fájlokat a fájlkiterjesztésük és bizonyos mértékig a fájlok tartalma alapján.

Ack parancs szintaxisa:

ack [options] PATTERN [FILE...]
ack -f [options] [DIRECTORY...]

Például a Linux keresőkifejezés ellenőrzéséhez futtassa:

ack Linux hello.txt

A keresőeszköz meglehetősen intelligens, és ha a felhasználó nem ad meg fájlt vagy könyvtárat, akkor az aktuális könyvtárban és alkönyvtárban keresi a keresési mintát.

Az alábbi példában nem adtunk meg fájlt vagy könyvtárat, de az ack automatikusan felismerte az elérhető fájlt, és megkereste a megadott megfelelő mintát.

ack Linux

Az ack telepítéséhez futtassa a következő parancsot:

sudo apt install ack-grep    [On Debian/Ubuntu]
sudo dnf install ack-grep    [On CentOS/RHEL]

4. Awk Command

Az Awk egy teljes körű szkriptnyelv, valamint egy szövegfeldolgozó és adatkezelési eszköz. A keresési mintát tartalmazó fájlokban vagy programokban keres. Amikor megtalálja a karakterláncot vagy mintát, az awk műveletet hajt végre az egyezésen vagy vonalon, és kinyomtatja az eredményeket az STDOUT-ra.

Az AWK minta kapcsos zárójelek között van, míg a teljes program idézőjelek között van.

Vegyük a legegyszerűbb példát. Tegyük fel, hogy a képen látható módon nyomtatja ki a rendszer dátumát:

date

Tegyük fel, hogy csak az első értéket szeretné kinyomtatni, ami a hét napja. Ebben az esetben a kimenetet az ábrán látható módon awk-ba vezesse:

date | awk '{print $1}'

A következő értékek megjelenítéséhez vesszővel válassza el őket az alábbi módon:

date | awk '{print $1,$2}'

A fenti parancs megjeleníti a hét napját és a hónap dátumát.

Az awk funkcióval használható további opciók megtekintéséhez egyszerűen olvassa el az awk parancssorozatunkat.

5. Ezüst kereső

A Silver Searcher egy többplatformos és nyílt forráskódú keresőeszköz, amely hasonló az ackhez, de a sebességre helyezi a hangsúlyt. Lehetővé teszi, hogy a lehető legrövidebb időn belül keressen egy adott karakterláncot a fájlokon belül:

Szintaxis:

ag OPTIONS search_pattern /path/to/file

Például a „Linux” karakterlánc kereséséhez egy hello.txt fájlban hívja elő a következő parancsot:

ag Linux hello.txt

További lehetőségekért keresse fel a man oldalakat:

man ag

6. Ripgrep

Végül megvan a ripgrep parancssori eszköz. A Ripgrep egy többplatformos segédprogram reguláris kifejezési minták keresésére. Sokkal gyorsabb, mint az összes korábban említett keresőeszköz, és rekurzívan keresi a megfelelő mintákat a könyvtárakban. Sebesség és teljesítmény tekintetében nincs más eszköz, mint a Ripgrep.

Alapértelmezés szerint a ripgrep kihagyja a bináris fájlokat/rejtett fájlokat és könyvtárakat. Ne feledje továbbá, hogy alapértelmezés szerint nem keres olyan fájlokat, amelyeket a .gitignore/.ignore/.rgignore fájlok figyelmen kívül hagynak.

A Ripgrep lehetővé teszi bizonyos fájltípusok keresését is. Például, ha a keresést a Javascript fájlokra szeretné korlátozni:

rg -Tsj

A ripgrep használatának szintaxisa meglehetősen egyszerű:

rg [OPTIONS] PATTERN [PATH...]

Például. Ha meg szeretné keresni a „Linux” karakterlánc példányait az aktuális könyvtárban található fájlokban, futtassa a következő parancsot:

rg Linux

A ripgrep telepítéséhez futtassa a következő parancsokat:

sudo apt install ripgrep      [On Debian/Ubuntu]
sudo pacman -S ripgrep        [On Arch Linux]
sudo zypper install ripgrep   [On OpenSuse]
sudo dnf install ripgrep      [On CentOS/RHEL/Fedora]

További lehetőségekért keresse fel a man oldalakat:

man rg

Ezek a legszélesebb körben használt parancssori eszközök a Linuxban történő kereséshez, szűréshez és szövegkezeléshez. Ha van más eszköze, amelyet úgy érzi, hogy kihagytunk, tudassa velünk a megjegyzés rovatban.