grep

„Grep“ komanda „Linux“

„Grep“ komanda „Linux“
„Grep“ (visuotinės reguliarios išraiškos spausdinimas) komanda yra galingiausia ir reguliariai naudojama „Linux“ komandinės eilutės priemonė. Naudodamiesi „Grep“ galite ieškoti naudingos informacijos nurodydami paieškos kriterijus. Jis ieško tam tikro išraiškos šablono nurodytame faile. Radęs atitikimą, jis išspausdina visas failo eilutes, kurios atitiko nurodytą šabloną. Tai praverčia, kai reikia filtruoti per didelius žurnalo failus.

Šiame straipsnyje paaiškinsime grep naudingumo naudojimą su skirtingais pavyzdžiais. Norėdami paaiškinti šiame straipsnyje nurodytas komandas ir metodus, naudosime „Debian 10“.

„Grep“ diegimas

„Grep“ įdiegta daugumoje „Linux“ paskirstymų. Tačiau jei jūsų sistemoje jo nėra, galite jį įdiegti naudodami šį metodą terminale:

$ sudo apt-get install grep

Naudojant „Grep“

Čia yra pagrindinė grep komandos sintaksė. Tai prasideda grep, po to pateikiamos kelios parinktys ir paieškos kriterijai, tada baigiama failo pavadinimu.

$ grep [parinktys] PATTERN [FILE…]

Ieškokite failų

Norėdami ieškoti failo pavadinimo kataloge, kuriame yra konkreti eilutė, galite naudoti grep tokiu būdu:

$ ls -l | grep -i “stygos

Pavyzdžiui, norint ieškoti failo pavadinimo, kuriame yra eilutė „testas“, Komanda būtų tokia:

$ ls -l | grep -i testas

Šioje komandoje pateikiami visi failai, kuriuose yra eilutė „testas“.

Ieškokite eilutės faile

Norėdami ieškoti eilutės konkrečiame faile, galite naudoti šią komandų sintaksę:

$ string „string“ failo vardas

Pavyzdžiui, norint ieškoti eilutės „testas“Faile pavadinimu testfile1, mes naudojome šią komandą:

$ grep „darbuotojo“ testfailas1

Pirmiau pateiktas rezultatas grąžino sakinį iš testfile1 kurioje yra eilutė „darbuotojas“.

Ieškokite eilutės keliuose failuose

Norėdami ieškoti eilutės keliuose failuose, galite naudoti šią komandų sintaksę:

$ grep „string“ failo vardas1 failo vardas2

Pavyzdžiui, norėdami ieškoti eilutės „darbuotojas“ dviejuose failuose testfile1 ir testfile2, naudojome šią komandą:

$ grep „darbuotojo“ testfile1 testfile2

Pirmiau pateiktoje komandoje bus išvardytos visos eilutės, kuriose yra eilutė „darbuotojas“ iš failų testfile1 ir testfile2.

Taip pat galite naudoti pakaitos simbolį, jei visi failų pavadinimai prasideda tuo pačiu tekstu.

$ grep „string“ failo vardas *

Pavyzdžiui, jei paimsime aukščiau pateiktą pavyzdį, kuriame buvo mūsų failų pavadinimai testfile1 ir testfile2 , komanda būtų tokia:

$ grep „darbuotojo“ bandomoji byla *

Ieškokite eilutės faile, nepaisydami eilutės didžiųjų raidžių

Dažniausiai su tuo susidūrėte, kai ieškote kažko naudodami „grep“, bet negaunate išvesties. Taip nutinka dėl neatitikimo ieškant eilutės. Kaip ir mūsų pavyzdyje, jei mes klaidingai naudojameDarbuotojas" vietoj "darbuotojas“, Jis grąžins nulį, nes mūsų faile yra eilutė„darbuotojas“Mažosiomis raidėmis.

Galite pasakyti „grep“, kad ignoruotų paieškos eilutės atvejį, naudodamas -i vėliavą po grep taip:

$ grep -i „string“ failo vardas

Naudodama vėliavą -i, komanda atliks mažųjų ir mažųjų raidžių paiešką ir grąžins visas eilutes, kuriose yra eilutė „darbuotojas“Jame, neatsižvelgiant į raides, yra didžiosios arba mažosios.

Ieškokite naudodami įprastą išraišką

Jei reguliariai naudojama tinkamai, reguliarioji išraiška yra labai efektyvi grep funkcija. Naudodami komandą „Grep“, galite apibrėžti įprastą išraišką su pradiniu ir galiniu raktiniais žodžiais. Tokiu būdu jums nereikės įvesti visos eilutės su komanda grep. Šiam tikslui galima naudoti šią sintaksę.

$ grep “pradinis raktinis žodis.* pabaigosKeyword “failo vardas

Pavyzdžiui, norėdami ieškoti eilutės faile pavadinimu testfile1, kuris prasideda eilute „this“ ir baigiasi eilute „data“, naudojome šią komandą:

$ grep “tai.* duomenys “testfile1

Tai atspausdins visą eilutę iš testfile1 kuriame yra išraiška (pradinis raktinis žodis „tai“ ir galutinis raktinis žodis „duomenys“).

Atspausdinkite tam tikrą eilučių skaičių po / prieš paieškos eilutę

Taip pat galite rodyti konkretų failo eilučių skaičių prieš / po eilutės atitikties ir pačią suderintą eilutę. Šiam tikslui galima naudoti šią sintaksę:

$ grep -A „String“ failo vardas

Po eilutės suderinimo nurodytame faile, įskaitant suderintą eilutę, bus rodomas N eilučių skaičius.

Pavyzdžiui, tai yra mūsų pavyzdinis failas, pavadintas testfile2.

Ši komanda išves suderintą eilutę, kurioje yra eilutė „darbuotojas“, Kartu su 2 eilutėmis po jo.

$ grep -A 2 -i „darbuotojo“ testfailas2

Panašiai, jei norite rodyti N eilučių skaičių prieš atitinkančią eilutę konkrečiame faile, naudokite šią sintaksę:

$ grep -B „String“ failo vardas

Norėdami rodyti N eilučių aplink eilutę konkrečiame faile, naudokite šią sintaksę:

$ grep -C „String“ failo vardas

Paieškos išryškinimas

„Grep“ pagal numatytuosius nustatymus spausdina suderintas eilutes, bet nerodo, kuri eilutės dalis yra suderinta. Jei naudosite parinktį -color su grep, ji parodys, kur jūsų faile rodomos apdirbimo eilutės. „Grep“ pagal numatytuosius nustatymus paryškinimui naudokite raudoną spalvą.

Šiam tikslui galima naudoti šią sintaksę:

$ grep „string“ failo pavadinimas - spalva

Skaičiuojamas rungtynių skaičius

Jei norite suskaičiuoti, kiek kartų konkretus žodis pasirodo konkrečiame faile, galite naudoti parinktį grep with -c. Pateikiamas tik rungtynių skaičius, o ne pats rungtynių skaičius. Šiam tikslui galima naudoti šią sintaksę:

$ grep -c „string“ failo vardas

Tai yra mūsų failo pavyzdys:

Toliau pateikiamas komandos, kuri grąžino žodžio kartų skaičių, pavyzdys failą pasirodė byloje pavadinimu bandomoji byla3.

Apversta paieška

Kartais norite atlikti atvirkštinę paiešką, kurioje būtų rodomos visos eilutės, išskyrus tas, kurios atitiko įvestį. Norėdami tai padaryti, tiesiog naudokite -v vėliavą ir grep:

$ grep -v „string“ failo vardas

Pavyzdžiui, norint rodyti visas failo eilutes bandomoji byla3 kuriuose nėra žodžio „sąskaita“, naudojome šią komandą:

$ grep -v „sąskaita“ testfailas3

„Grep“ naudojimas su kitomis komandomis

„Grep“ taip pat gali būti naudojamas norint filtruoti reikiamą rezultatą iš skirtingų komandų išvesties. Pavyzdžiui, išapt -installed list “ komandų išvestį, norite rasti tik automatiškai įdiegtus paketus, galite filtruoti rezultatą naudodami grep taip:

$ apt - įdiegtas sąrašas | grep automatinis

Panašiai lscpu pateikia išsamią informaciją apie procesorių. Jei jus domina tik informacija apie procesoriaus architektūrą, galite ją išfiltruoti naudodami šią komandą:

$ lscpu | grep Architektūra

Šiame straipsnyje mes aprašėme keletą pavyzdžių, kurie padės jums suprasti „grep“ komandas ir jų naudojimą įvairiomis sąlygomis. Stiprus „grep“ įsikibimas gali sutaupyti daug laiko, jei jums reikia peržiūrėti didelius konfigūracijos ar žurnalo failus ir per juos praleisti naudingą informaciją.

„Battle for Wesnoth“ pamoka
„Battle for Wesnoth“ yra vienas populiariausių atvirojo kodo strateginių žaidimų, kurį šiuo metu galite žaisti. Šis žaidimas ne tik buvo kuriamas laba...
0 A.D. Pamoka
Iš daugybės strateginių žaidimų 0 A.D. sugeba išsiskirti kaip išsamus pavadinimas ir labai gilus, taktinis žaidimas, nepaisant to, kad yra atviro kodo...
„Unity3D“ pamoka
Įvadas į „Unity 3D“ „Unity 3D“ yra galingas žaidimų kūrimo variklis. Tai yra daugiašalė platforma, kuri leidžia kurti žaidimus mobiliesiems, interneti...