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.