Hogyan találhat meg egy adott karakterláncot vagy szót a fájlok és könyvtárak között
Meg akarja találni az összes olyan fájlt, amely egy adott szót vagy szöveget tartalmaz a teljes Linux rendszeren vagy egy adott könyvtárban? Ez a cikk eligazítja, hogyan kell ezt megtenni, megtudhatja, hogyan kutathat rekurzívan a könyvtárakban, hogy megtalálja és felsorolja az adott szöveget tartalmazó fájlokat.
Ennek egyszerű megoldása a grep mintakereső eszköz, amely egy hatékony, hatékony, megbízható és legnépszerűbb parancssori segédprogram minták és szavak keresésére Unix-szerű rendszerek fájljaiból vagy könyvtáraiból.
Olvassa el még: 11 fejlett Linux „Grep” parancs karakterosztályokra és zárójel-kifejezésekre
Az alábbi parancs felsorolja az összes fájlt, amely a „check_root” szöveget tartalmazó sort tartalmaz, rekurzív és agresszív kereséssel a ~/bin
könyvtárban.
grep -Rw ~/bin/ -e 'check_root'
Ahol a -R
opció azt utasítja a grep-nek, hogy rekurzívan olvassa be az egyes könyvtárak összes fájlját, csak akkor kövesse a szimbolikus hivatkozásokat, ha azok a parancssorban és a -w< paraméterben vannak. A arra utasítja, hogy csak azokat a sorokat jelölje ki, amelyek egyezéseket tartalmaznak, amelyek egész szavakat alkotnak, a -e
pedig a keresendő karakterlánc (minta) megadására szolgál.
Használja a sudo parancsot bizonyos könyvtárak vagy fájlok keresésekor, amelyekhez root jogosultság szükséges (kivéve, ha a rendszert a root fiókkal kezeli).
sudo grep -Rw / -e 'check_root'
A kis- és nagybetűk megkülönböztetésének figyelmen kívül hagyásához használja a -i
kapcsolót az ábrán látható módon:
grep -Riw ~/bin/ -e 'check_root'
Ha meg szeretné tudni, hogy pontosan melyik sort tartalmazza a szöveg, használja a -n
kapcsolót.
grep -Rinw ~/bin/ -e 'check_root'
Feltételezve, hogy egy könyvtárban többféle fájl található, amelyben keresni szeretne, a --include
kapcsolóval megadhatja a keresendő fájlok típusát is, például kiterjesztésük alapján.
Ez a példa arra utasítja a grep-et, hogy csak az összes .sh
fájlt nézze át.
grep -Rnw --include=\*.sh ~/bin/ -e 'check_root'
Ezen kívül lehetőség van egynél több minta keresésére is, a következő paranccsal.
grep -Rinw ~/bin/ -e 'check_root' -e 'netstat'
Ez az! Ha ismer más parancssori trükköt, amellyel karakterláncot vagy szót találhat a fájlokban, ossza meg velünk, vagy tegyen fel bármilyen kérdést a témával kapcsolatban, használja az alábbi megjegyzés űrlapot.