A Linux-fejlesztők azt a filozófiát követik, hogy olyan kis programokat hoznak létre, amelyek egyetlen feladatot és jól csinálnak. Vegyük például a Linux szövegfeldolgozó eszközeit, amelyek könnyűek és moduláris funkcionalitásúak. Noha ezek a szövegszerkesztő eszközök összetettségükben és funkcionalitásukban különböznek egymástól, jól jöhetnek olyan környezetben, ahol a grafikus felhasználói felület nem érhető el.

A cikk bemutatja a legjobb Linux-eszközöket fájlok olvasásához és reguláris kifejezések használatához a kiválasztott szöveggel végzett műveletek végrehajtásához. Lefedi a legalapvetőbb funkcióikat és példákat is a jobb megértés érdekében.

1. grep

A grep egy Linux szövegmanipuláló segédprogramja, amely karakterláncokat vagy mintákat keres, amelyek reguláris kifejezésként ismertek egy fájlban vagy szövegben. A grep eszköz az egrep, fgrep és grep segédprogramok családjába tartozik, amelyek közül az fgrep a leggyorsabb, míg a grep a legegyszerűbb.

A grep használatának általános szintaxisa a következő:

grep -options string fájlnév

Például a „root” szó kereséséhez az /etc/passwd fájl:

grep gyökér /etc/passwd

Néhány szabványos parancssori példa a kezdéshez:

Opciók Példa Leírás
-c grep -c ./bashrc Számolja meg azoknak a soroknak a számát, amelyekben a karakterlánc létezik
-én grep -i ./bashrc Végezzen keresést a kis- és nagybetűk megkülönböztetése nélkül a megadott karakterláncra
-o grep -o fájlt Csak az egyező karakterláncot nyomtatja ki
-l grep -l "passwd" Kinyomtatja a mintának megfelelő fájlneveket az aktuális könyvtárban
-n grep -n fájlt Kiírja a sorszámot a megadott karakterláncot tartalmazó sor mentén
string1|karakterlánc2 grep "string1|karakterlánc2" fájl Több karakterlánc megkeresése és kinyomtatása egy fájlból

Hasonlóképpen használhatja a ^ metakarakter a grep paranccsal, hogy megjelenítse az összes megfelelő karakterláncot, amely bizonyos karakterekkel kezdődik.

Például a következő parancs az env parancs kimenetét a grep bemeneteként adja meg, és megjeleníti a "" karakterekkel kezdődő változókatHO":

env | grep ^HO

Összefüggő: Gyakorlati példák a Linux Grep parancsaira

2. awk

Az awk egy hatékony szkriptnyelv és egy parancssori szövegmanipuláló eszköz, amely képes soronkénti vizsgálatokat végezni, és a sorokat mintákkal összehasonlítani. Az awk parancs alapvető szintaxisa egy idézőjel és a kapcsos zárójelek között meghatározott művelet, amelyet a fájlnév követ.

awk '{action}' fájlnév
awk '{minta; action}' fájlnév

A segédprogram reguláris kifejezések segítségével keres a fájlban, és végrehajtja a műveleti paraméterben meghatározott funkciót. Az awk minden sorban végrehajtja a szkriptet, ha nem állít be mintát, az alábbiak szerint:

awk '{print $1}' awk_examples.txt

...ahol $1 az első mezőt jeleníti meg awk_examples.txt fájlt.

A következő parancs végrehajtja a nyomtatási funkciót az adott mintán a második mező lecserélésévelVilág" val vel "Alice", és megjeleníti a teljes sort ($0):

echo "Hello World" | awk '{$2="Alice"; nyomtatás $0}"

Kimenet:

Szia Alice

Hasonlóképpen használhatja a funkciót nyomtatás $0 a fenti parancsból, hogy emulálja a grep funkcionalitás.

awk '/john/{print $0}' /etc/passwd
john: x: 1001:1001::/home/john:/bin/sh

3. fajta

A sort egy másik Linux parancssori segédprogram, amely segít a megadott szövegfájl tartalmának rendezett formátumban történő megjelenítésében. Például az awk parancs kimenetét a rendezési segédprogram bemeneteként továbbíthatja a következőképpen:

awk '{print $1}' awk_examples.txt | rendezés > sort_text.txt
cat sort_text.txt

Kimenet:

Összefüggő: Szövegfájlok rendezése Linuxban a rendezés segítségével

4. sed

A sed vagy a stream szerkesztő karakterfolyamként veszi fel a bemenetet, és szűrést és szövegátalakítást hajt végre (törlés, helyettesítés és csere) a megadott szövegen.

Használhatja szkriptben, és nem interaktív módon szerkesztheti a fájlokat. Ezért a segédprogram legalapvetőbb célja a karakterlánc/karakterek helyettesítése. Az általános szintaxis a következő:

sed 's/string/substitution/option' fájl

Hozzon létre egy fájlt véletlenszerű mondatok használatával, hogy gyakorolja és megértse a segédprogram működését.

Cseréljük le a " szó előfordulásátkettő" a fájl minden sorában a következővel: "2" használni a -g zászló a globális cseréhez, az alábbiak szerint:

sed 's/two/2/g' sed_examples.txt > sed_examples2.txt

Hasonlóképpen használja a -d megjelölés egy adott sor törléséhez a fájlból:

sed '2d' sed_examples.txt

A karakterláncot lecserélheti egy sorszám megadásával (4 s/két/2/p), és csak a lecserélt sort nyomtatja ki az alábbiak szerint:

sed -n '4 s/two/2/p' sed_examples2.txt

A -n flag a fenti parancsban letiltja a bemeneti adatfolyam automatikus nyomtatását a kimenetre. Használhatja ezt az opciót a grep segédprogram sed-re cserélésére.

Például módosíthatja a fenti parancsot úgy, hogy csak egy regex mintát ad hozzá /two/p olyan, hogy a -o flag csak a sorokat nyomtatja ki a szabványos kimeneti adatfolyamba.

sed -n '/két/p' sed_examples2.txt

Összefüggő: Ez a 10 sed példa nagy teljesítményű Linux-felhasználóvá tesz

5. vágott

A kivágás egy másik parancssori segédprogram, amely kivágja/kivonja a szövegrészeket egy sorból vagy fájlból. Kivágja a szöveget egy megadott mező, karakter vagy bájtpozíció alapján, és az eredményt a szabványos kimenetre továbbítja.

A segédprogram a következő szintaxist veszi fel:

vágott  fájlt

Használja a -b lehetőség szakasz vagy tartalom kivágására meghatározott bájt vagy bájttartomány használatával:

cut -b 1 cut_examples.txt

Használja a -c zászló a szöveg kibontásához a karakterek pozíciójának megadásával:

cut -c 1,3,5 cut_examples.txt

Végül a szöveget is kivonhatja a mezők megadásával a -f opció és -d szóköz- vagy mezőhatárolóhoz:

cut -d " " -f 1 cut_examples.txt

Itt található a tartományok listája példákkal és leírásokkal, amelyeket a karakterrel használhat -c és bájt -b opciók:

Hatótávolság Példa Leírás
n- cut -c 7- fájlnév Karakter kivonása az n-edik egész számból a sor végéig
n-m cut -b 7-15 fájlnév Kivonja a bemeneti fájl minden sorának n-m egész számát
-m cut -c -7 fájlnév Kivonja a sorokat m-től a sor végéig

Vegye figyelembe, hogy a mező használatával nem határozhatja meg a szövegkivonás tartományait -f választási lehetőség.

Szöveg manipulálása Linux parancsokkal

A Linux számos programot és eszközt kínál a fájlok vagy szövegek kezelésére és kezelésére. Előfordulhat, hogy nem szükséges mindegyiket megtanulni, mivel könnyen kitöltheti a hiányt egy másikkal, ha már jól tud az egyiken, például használja a sed-et grepként vagy az awk-t grepként, de ez nem igaz minden eszközre.

Emellett a Linux parancsok meredek tanulási görbével rendelkeznek, de ha egyszer fejlesztjük a készségeket, nagyon hasznosnak és hatékonynak bizonyulhatnak bármely Linux-felhasználó, különösen a rendszergazda életében.

8 legjobb terminálalkalmazás a továbbfejlesztett Linux termelékenység érdekében

Unod már a régi és unalmas terminálalkalmazást, amely előtelepítve érkezik Linuxra? Tekintse meg ezt a nyolc terminálalkalmazást, amelyek javítják a munkafolyamatot.

Olvassa el a következőt

RészvényCsipogEmail
Kapcsolódó témák
  • Linux
  • Linux parancsok
A szerzőről
Rumaisa Niazi (7 cikk megjelent)

Rumaisa a MUO szabadúszó írója. Sok kalapot viselt, a matematikustól az információbiztonság-rajongóig, és most SOC elemzőként dolgozik. Érdeklődési köre az új technológiákról, Linux disztribúciókról és az információbiztonsággal kapcsolatos bármiről való olvasás és írás.

Továbbiak Rumaisa Niazitól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!

Kattintson ide az előfizetéshez