Линукс grep Command-ийн жишээ хэрэглээ

Оршил

Линукс grep команд нь оролтын шүүлтүүрийг ашигладаг арга юм.

GREP нь Global Regular Expression Printer-ийг илэрхийлдэг бөгөөд ингэснээр үүнийг үр дүнтэй ашиглахын тулд тогтмол илэрхийллийн талаар зарим нэг мэдлэгтэй байх ёстой.

Энэ өгүүлэлд би grep тушаалыг ойлгоход туслах хэд хэдэн жишээг үзүүлэх болно.

01 - 09

GREP ашиглан файлд мөрийг хайх

Линукс grep Тушаал.

Дараах хүүхдийн номны гарчигтай ном гэж нэрлэдэг текст файлтай байна гэж төсөөлөөд үз дээ:

Дараах синтаксийг ашиглан "Бүх" номыг бүх номыг олохын тулд:

grep номууд

Дараахь үр дүнг буцаана:

Аль ч тохиолдолд "The" гэсэн үгэнд тодрох болно.

Хайлт нь хэрэглэгчийн хувьд мэдрэмтгий гэдгийг санаарай. Тэгэхээр "The" гэсэн нэрсийн оронд нэг нь "буцаад" буцааж өгөхгүй.

Тохиолдлыг үл тоомсорлохын тулд дараах холболтыг нэмж болно:

Номоо зурах - гарын үсэг

Та -i сонголтыг дараах байдлаар ашиглаж болно:

grep -i номууд

09 сарын 02

Wildcards ашиглан файлд мөрийг хайх

Grep тушаал нь маш хүчтэй байдаг. Үр дүнг шүүхийн тулд олон төрлийн тохирсон аргыг ашиглаж болно.

Энэ жишээнд би таныг файл дээр тэмдэгт мөр хайхад хэрхэн харуулахыг харуулах болно.

Дараах Шотландын нэрстэй газрууд нэртэй файл байна гэж төсөөлөөд үз дээ:

aberdeen

aberystwyth

доогуураа

inverurie

inverness

шинэбургт

шинэ буга

шинэ цөцгийн тос

glasgow

edinburgh

Хэрэв та inver-тай бүх газрыг нэрээр нь олохыг хүсвэл доорхи синтаксийг ашиглана уу:

grep inver * places

Од (*) орлуулалт нь 0 эсвэл олон байна. Тиймээс хэрэв та инвертер буюу инвертер гэж нэрлэгддэг газар байгаа бол хоёулаа буцаагдах болно.

Таны ашиглаж болох өөр нэг орлуулалт нь (.) Үе юм. Та үүнийг нэг үсгээр тохируулахын тулд үүнийг ашиглаж болно.

grep inver.r places

Дээрх команд нь inverurie гэж нэрлэгддэг газрыг олж, харин дотогшоо олохгүй байх болно. Учир нь зөвхөн нэг удаа тэмдэглэгдсэн хоёр r-ийн хооронд нэг орлуулагддаг тэмдэгт байж болно.

Орлуулах хугацаа нь ашигтай боловч таны хайж буй текстийн нэг хэсэг байх үед асуудал үүсгэж болно.

Жишээ нь энэ домайн нэрсийн жагсаалтыг хар

Дараах синтаксийг ашиглан хайж болох about.coms-ыг олохын тулд:

grep * тухай * домэйн нэрсийн тухай

Дээрх тушаалын нэр дараах агуулгатай байх болно.

Тэгэхээр та дараахь дүрмийг туршиж үзэж болно:

grep * about.com домэйн нэрс

Дараах нэртэй домэйн байхгүй бол энэ нь зүгээр ажиллах болно:

aboutycom.com

About.com гэсэн нэр томъёог үнэхээр хайхын тулд дараах цэгээс зугтах хэрэгтэй болно:

grep * \ .com домэйн нэртэй холбоотой

Таныг харуулах эцсийн орлуулах тэмдэг бол тэг эсвэл нэг тэмдэгт гэсэн тэмдэглэгээ юм.

Жишээлбэл:

grep? plac placemames

Дээрх команд нь aberdeen, aberystwyth эсвэл even berwick руу буцах болно.

03 - 09

График ашиглан эхлэл болон төгсгөл дэх мөрүүдийг хайх

Карат (^) ба доллар ($) тэмдэг нь мөрийн эхлэл, төгсгөлд хэв маягийг хайх боломжийг олгодог.

Дараах багийн нэрээр хөлбөмбөг гэдэг файл байгаа гэж төсөөлөөд үз дээ:

Хэрвээ та Манчестераас эхэлсэн бүх багийг олохыг хүсвэл дараахь синтаксийг ашиглана:

grep ^ Manchester багууд

Дээрх тушаал Манчестер Сити болон Манчестер Юнайтедыг буцааж өгөх болно.

Түүнчлэн та United-тэй дуусах бүх багийг дараах синтаксийг ашиглан олж болно:

grep United $ багууд

Дээрх тушаал нь Манчестер Юнайтед, Ньюкасл Юнайтедыг буцааж өгөх болно.

04-р сарын 09

Тоглолтыг тоогоор нь дугаарлана

Хэрэв та grep ашиглаж буй загвартай яг таарах мөрүүдийг буцааж өгөхийг хүсэхгүй байгаа бол та дараах синтаксийг ашиглан хичнээн тоог ашиглаж болохыг мэдэхийг хүсч байна:

grep -c загварын оролтын файл

Хэрэв загварыг хоёр удаа тохируулсан бол 2 дугаарыг буцааж өгнө.

05-р сарын 09

Grep ашиглан таарахгүй бүх нөхцлийг олох

Дараах байдлаар жагсаасан улсуудтай нэрсийн жагсаалтыг та төсөөлөөд үз дээ:

Колвайн булан нь үүнтэй холбоотой ямар ч улс байхгүй гэдгийг та анзаарсан байх.

Дараах синтаксийг ашиглаж болох улс орон бүрийг хайх:

grep land $ places

Үр дүнд нь колонийн булангаас бусад бүх газрыг буцаана.

Энэ нь зөвхөн газар дээр төгсөж буй газруудад (шинжлэх ухааны хувьд бараг байдаггүй) үйлчилдэг.

Дараах синтаксийг ашиглан сонгосон сонголтоо хийж болно:

grep -v газар $ газрууд

Энэ нь газраар хязгаарлагдахгүй бүх газрыг олох болно.

06-р сарын 09

Grep ашиглан хоосон мөрүүдийг хэрхэн олох вэ

Хоосон мөрийг дараах байдлаар олсон файлыг уншиж буй гуравдагч талын аппликешнд ашигладаг оролтын файл байна гэж төсөөлөөд үз дээ:

Өргөдөл нь "liverpool" -ын дараа шугам руу ороход колуны булан бүхэлдээ алдагдсан гэсэн үг юм.

Дараах синтакстай хоосон мөрүүдийг хайхын тулд grep ашиглаж болно:

grep ^ $ places

Харамсалтай нь энэ нь зүгээр л хоосон мөрүүдийг буцаана гэсэн үг юм.

Та файлын хоосон мөрийн тоог дараах байдлаар шалгаж болно: файл нь дараах байдлаар хүчинтэй байна:

grep -c ^ $ газрууд

Гэхдээ тэдгээрийг солихын тулд хоосон мөр бүхий мөрийн дугаарыг мэдэх нь илүү ашигтай байх болно. Үүнийг дараах тушаалаар хийж болно:

grep -n ^ $ газрууд

09-р сарын 07

Grep ашиглан дээд болон доод тэмдэгт мөрүүдийг хайх

Grep ашиглах нь та файл дотор аль мөрүүд нь том үсгүүдтэй дараах синтаксийг ашиглан тодорхойлж чадна:

grep '[AZ]' файлын нэр

Дөрвөлжин хаалт [] таныг тэмдэгтүүдийн хүрээг тодорхойлно. Дээрх жишээнд A ба Z-ийн хоорондох ямар ч тэмдэгттэй таарч байна.

Тиймээс жижиг үсгүүдийг тааруулахын тулд дараах синтаксийг ашиглаж болно:

grep '[az]' файлын нэр

Хэрэв та зөвхөн үсэг, тоонууд болон бусад тэмдэгтүүдийг тааруулахыг хүсч байвал дараах синтаксийг ашиглаж болно:

grep '[a-zA-Z]' файлын нэр

Та дараах байдлаар тоонуудтай адилхан хийж болно:

grep '[0-9]' файлын нэр

08-ийн 08

Grep ашиглан дахин давтагдах зуршлыг хайж байгаа нь

Та давталтын загвар хайхдаа {{cur} хаалт ашиглаж болно.

Дараах байдлаар утасны дугаар бүхий файл байна уу гэж төсөөлөөд үз дээ:

Тоонын эхний хэсэг нь гурван цифр байх ёстой бөгөөд та энэ загвартай тохирохгүй мөрүүдийг олохыг хүсч байна.

Өмнөх жишээнээс [0-9] файл дахь бүх тоог буцаана гэдгийг та мэднэ.

Энэ жишээн дээр бид гурван тоогоор эхэлсэн зураасыг (-) тэмдэглэнэ. Та дараах байдлаар бичиж болно:

grep "^ [0-9] [0-9] [0-9] -" тоо

Өмнөх жишээнээс мэдсэнээр карат (^) нь шугам дараах загвараас эхлэх ёстой гэсэн үг юм.

[0-9] нь 0-ээс 9 хоорондох ямар ч дугаарыг хайх болно. Үүнийг гурван удаа оруулбал 3 тоотой таардаг. Эцэст нь зураас нь гурван тоогоор амжилтанд хүрэх ёстойг харуулж байна.

Дараагаар нь хайлт хийхэд хайлт хийх боломжтой болно.

grep "^ [0-9] \ {3 \} -" тоо

Зүсэгч нь {хаалтыг байнгын илэрхийллийн хэсэг байдлаар ажиллуулдаг боловч үндсэндээ 0 -9 ({3} гэж хэлдэг бөгөөд энэ нь 0-ээс 9-ийн хоорондох тоо гурав юм.

Дараах байдлаар буржгар хаалтыг ашиглаж болно:

{5,10}

{5,}

{510} гэдэг нь хайж байгаа тэмдэгтийг 5-аас доошгүй удаа давтаж байх ёстой боловч 10-аас ихгүй харин {5,} тэмдэгтийг 5-аас доошгүй удаа давтан хийх ёстой гэсэн үг юм.

09-р сарын 09

Grep ашиглан бусад тушаалаас гаралтыг ашиглах

Одоогоор бид файл тус бүрт тохирсон загварыг харсан боловч grep нь бусад тохируулгуудаас гарах үр дүнг хэвлэлтийн тохируулгын оролт болгон ашиглаж чаддаг.

Идэвхтэй процессуудыг жагсаадаг PS тушаалыг ашиглан энэ гайхалтай жишээ бий.

Жишээ нь дараах тушаалыг ажиллуулна:

ps -ef

Таны систем дээрх бүх ажиллаж байгаа процессуудыг харуулах болно.

Та grep-ийг тодорхой ажиллаж байгаа процессыг дараах маягаар хайж болно:

ps -ef | grep firefox

Хураангуй

Grep команд нь Линуксийн үндсэн зарчим бөгөөд энэ нь сурахад хамаатай зүйл юм. Энэ нь таны компьютерийг ашиглах үед файлуудыг хайхад илүү хялбар болгодог.