„Grep“ komanda „Linux“

Grep Command Linux



Grep (visuotinė reguliarios išraiškos spausdinimas) komanda yra galingiausia ir reguliariai naudojama „Linux“ komandų eilutės priemonė. Naudodami „Grep“, galite ieškoti naudingos informacijos nurodydami paieškos kriterijus. Jis ieško tam tikro išraiškos modelio nurodytame faile. Radęs atitikimą, jis spausdina visas failo eilutes, kurios atitiko nurodytą modelį. Tai naudinga, kai turite filtruoti didelius žurnalo failus.

Šiame straipsnyje paaiškinsime grep naudingumo naudojimą įvairiais pavyzdžiais. Mes naudosime „Debian 10“, kad paaiškintume šiame straipsnyje nurodytas komandas ir metodus.







Grep diegimas

„Grep“ yra įdiegta daugelyje „Linux“ platinimų. Tačiau tuo atveju, jei jos trūksta jūsų sistemoje, galite ją įdiegti naudodami šį terminalo metodą:



$sudo apt-get install sukibimas

Grepo naudojimas

Čia yra pagrindinė grep komandos sintaksė. Jis prasideda grep, po kurio seka kai kurios parinktys ir paieškos kriterijai, o paskui baigiasi failo pavadinimu.



$sukibimas [galimybės]RAŠTAS[FILE ...]

Ieškokite failų

Norėdami ieškoti failo pavadinimo kataloge, kuriame yra tam tikra eilutė, galite naudoti grep taip:





$ls -jie | sukibimas -ieilutė

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

$ls-jie| sukibimas- aštestas

Ši komanda išvardija visus failus, kuriuose yra eilutė testas .



Ieškokite eilutės faile

Norėdami ieškoti eilutės tam tikrame faile, galite naudoti šią komandų sintaksę:

$sukibimaseilutės failo pavadinimas

Pavyzdžiui, ieškoti eilutės testas faile pavadinimu bandomasis failas1 , mes panaudojome šią komandą :

$sukibimasdarbuotojo bandomasis failas1

Aukščiau pateikta produkcija grąžino sakinį iš bandomasis failas1 kuriame yra eilutė darbuotojas .

Ieškokite eilutės keliuose failuose

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

$sukibimaseilutė failo pavadinimas1 failo pavadinimas2

Pavyzdžiui, norėdami ieškoti eilutės darbuotojo dviejuose mūsų failuose testfile1 ir testfile2, naudojome šią komandą:

$sukibimasdarbuotojo testfile1 testfile2

Aukščiau pateiktoje komandoje bus išvardytos visos eilutės, kuriose yra eilutės darbuotojas iš failų testfile1 ir testfile2.

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

$sukibimaseilutės failo pavadinimas*

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

$sukibimasdarbuotojo bandomoji byla*

Ieškokite eilutės faile, ignoruodami eilutės raidę

Dažniausiai jūs susidūrėte su tuo, kai ieškote kažko naudodami grep, bet negaunate išvesties. Taip atsitinka dėl to, kad ieškant eilutės neatitinka raidžių. Kaip ir mūsų pavyzdyje, jei klaidingai naudojame Darbuotojas vietoj darbuotojas , jis grąžins nulį, nes mūsų faile yra eilutė darbuotojas mažosiomis raidėmis.

Galite nurodyti grep ignoruoti paieškos eilutės atvejį, naudodami –i vėliavą po grep taip:

$sukibimas–I eilutės failo pavadinimas

Naudodama –i vėliavą, komanda atliks didžiųjų ir mažųjų raidžių paiešką ir grąžins visas eilutes, kuriose yra eilutė darbuotojas jame neatsižvelgiant į tai, kad raidės yra didžiosios arba mažosios.

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

Tinkamai naudojant, reguliarioji išraiška yra labai veiksminga grep funkcija. Naudodami komandą Grep, galite apibrėžti įprastą išraišką su pradžios ir pabaigos raktažodžiu. Tai darydami, jums nereikės įvesti visos eilutės naudojant komandą grep. Tam gali būti naudojama ši sintaksė.

$sukibimaspradžios raktinis žodis.*EndKeyword failo pavadinimas

Pavyzdžiui, norėdami ieškoti eilutės faile, pavadintame testfile1, prasidedančia šia eilute ir baigiančia eilutės duomenimis, naudojome šią komandą:

$sukibimastai.*duomenų testas 1

Jis išspausdins visą eilutę iš bandomasis failas1 kuriame yra išraiška (pradinis raktinis žodis šis ir pabaigos raktinio žodžio duomenys).

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

Taip pat galite parodyti konkretų eilučių skaičių faile prieš/po eilutės atitikties kartu su pačia suderinta eilute. Tam gali būti naudojama ši sintaksė:

$sukibimas -TO <N>eilutės failo pavadinimas

Po to, kai eilutė bus suderinta nurodytame faile, įskaitant atitinkamą 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.

$sukibimas-TO2- mano darbuotojo bandomasis failas2

Panašiai, norėdami parodyti N eilučių skaičių prieš atitinkamą failo eilutę, naudokite šią sintaksę:

$sukibimas -B <N>eilutės failo pavadinimas

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

$sukibimas -C <N>eilutės failo pavadinimas

Paieškos išryškinimas

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

Tam gali būti naudojama ši sintaksė:

$sukibimaseilutės failo pavadinimas-spalva

Skaičiuojamas rungtynių skaičius

Jei norite suskaičiuoti, kiek kartų tam tikras žodis pasirodo konkrečiame faile, galite naudoti parinktį grep su –c. Pateikiamas tik rungtynių skaičius, o ne pačios rungtynės. Tam gali būti naudojama ši sintaksė:

$sukibimas- c eilutės failo pavadinimas

Mūsų pavyzdinis failas atrodo taip:

Toliau pateikiamas komandos pavyzdys, kuris grąžino žodžio kartų skaičių failą pasirodė faile pavadinimu bandomasis failas3 .

Apversta paieška

Kartais norite atlikti atvirkštinę paiešką, kurioje rodomos visos eilutės, išskyrus tas, kurios atitinka įvestį. Norėdami tai padaryti, tiesiog naudokite vėliavą –v, o po to - grep:

$sukibimas–V eilutės failo pavadinimas

Pavyzdžiui, kad būtų rodomos visos failo eilutės bandomasis failas3 kuriuose nėra žodžio sąskaita, naudojome šią komandą:

$sukibimas–V paskyros testfile3

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 - įdiegtas sąrašas komandų išvestį, norite rasti tik automatiškai įdiegtus paketus, galite filtruoti rezultatą naudodami grep taip:

$tinkamas-įdiegtasąrašą| sukibimasautomatinis

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

$lscpu| sukibimasArchitektūra

Šiame straipsnyje aprašėme keletą pavyzdžių, kurie padės suprasti grep komandas ir jų naudojimą skirtingomis sąlygomis. Tvirtas „grep“ komandos valdymas gali sutaupyti daug laiko, jei jums reikia peržiūrėti dideles konfigūracijos ar žurnalo failus ir per juos peržvelgti naudingą informaciją.