Linux- ի grep հրամանագրի օրինակ օգտագործումը

Ներածություն

Linux grep հրամանը օգտագործվում է որպես մուտքագրում ֆիլտրի մեթոդ:

GREP- ը հանդես է գալիս Global Regular Expression Printer- ի համար եւ, հետեւաբար, այն արդյունավետ օգտագործելու համար դուք պետք է որոշակի տեղեկություններ ունենաք հերթական արտահայտությունների մասին:

Այս հոդվածում ես ձեզ ցույց կտամ մի շարք օրինակներ, որոնք կօգնեն հասկանալ grep հրամանը:

01-ը 09

Ինչպես փնտրել մի լարային ֆայլ `օգտագործելով GREP- ը

Linux գաղտնիքի հրաման

Պատկերացրեք, որ դուք ունեք տեքստային ֆայլ, որը կոչվում է գրքեր հետեւյալ երեխաների գրքի վերնագրերով.

Թղթի վրա գրված բոլոր գրքերը գտնել «The» բառով, դուք օգտագործում եք հետեւյալ շարադրանքը.

գրողներ

Հետեւյալ արդյունքները կվերադարձվեն.

Յուրաքանչյուր դեպքում կարեւորվում է «The» բառը:

Նշենք, որ որոնումը գործի զգայուն է, ուստի եթե վերնագրերից մեկը «The» - ի փոխարեն «էր» ունենար, ապա այն չէր վերադարձվի:

Խափանելու համար դուք կարող եք ավելացնել հետեւյալ անցումը.

grep գրքերը --ignore-case

Դուք նույնպես կարող եք օգտագործել -i switch- ը հետեւյալ կերպ.

գրքեր

02-ը 09

Որոնեք մի լարային ֆայլի մեջ, օգտագործելով wildcards

The grep հրամանը շատ հզոր է: Դուք կարող եք օգտագործել արդյունքների զտման համար օգտագործվող բազում օրինակների համապատասխանող մեթոդներ:

Այս օրինակում ես ցույց կտամ ձեզ, թե ինչպես փնտրել տողը ֆայլի մեջ, օգտագործելով wildcards :

Պատկերացրեք, որ դուք ունեք հետեւյալ տեղակայված վայրերը հետեւյալ շոտլանդական տեղերի անուններով.

Աբերդիներ

աբերիստականությունը

աբերլուր

իններուրիա

ինվերսություն

Newburgh- ը

նոր եղնիկ

նոր գարնան

Գլազգոն

Էդինբուրգ

Եթե ​​ցանկանում եք գտնել բոլոր վայրերը իջնող անվանումով, օգտագործեք հետեւյալ շարադրանքը.

grep inver * տեղերը

Աստղանիշը (*) նշանավորն է 0 կամ շատերի համար: Հետեւաբար, եթե դուք ունեք մի վայր, որը կոչվում է inver կամ վայր, որը կոչվում է inverness, ապա երկուսն էլ կվերադարձվեն:

Դուք կարող եք օգտագործել այլ վահանակ, այն ժամանակահատվածը (.): Դուք կարող եք օգտագործել այն մեկ նամակին համապատասխանելու համար:

grep inver.r տեղեր

Վերոհիշյալ հրամանները կգտնեին անհամար եւ անվճռական կոչվող վայրեր, սակայն չեն գտնում զննում, քանի որ այն կարող է լինել միայն մեկ վայրկյան, երկու r- ի միջեւ, որը նշված է մի ժամանակաշրջանում:

Դրոշի պիտակը օգտակար է, բայց դա կարող է խնդիրներ առաջացնել, եթե ունեք մեկ տեքստում, որը փնտրում եք:

Օրինակ, այս դոմենային անունների ցանկը

Գտնել all about.coms- ը, կարող եք պարզապես որոնել `օգտագործելով հետեւյալ շարադրանքը.

grep * մասին * domainnames

Վերոնշյալ հրամանը կընկնի, եթե ցանկում ներառված է հետեւյալ անունը.

Հետեւաբար, կարող եք փորձել հետեւյալ շարադրանքը.

grep * about.com դոմենների անունները

Դա կլիներ լավ աշխատել, եթե չլինեին հետեւյալ անունով տիրույթ.

Մեջբերում

Հատկապես որոնելու համար on.com- ը, դուք պետք է փախչեք կետից.

grep * մասին \ .com domainnames

Վերջնական կոդավորումը ձեզ ցույց կտա այն հարցի նշանը, որը զրո կամ մեկ բնույթ է կրում:

Օրինակ:

grep? ber placenames- ը

Վերոնշյալ հրամանները վերադառնալու են ավերդիներ, ավերվատրություն կամ նույնիսկ հերվիկ:

03-ը 09

Որոնել տողերի համար սկզբի եւ վերջի գիծ օգտագործելով grep

Կարատ (^) եւ դոլարը ($) նշանները հնարավորություն են տալիս փնտրել գծերի սկզբում եւ վերջում:

Պատկերացրեք, որ ֆուտբոլային կոչված ֆայլ ունեք հետեւյալ թիմերի անուններով.

Եթե ​​ցանկանում եք գտնել բոլոր թիմերը, որոնք սկսվել են Մանչեսթերից, կօգտագործեք հետեւյալ շարադրանքը.

Մանչեսթեր Յունայթեդի թիմերը

Վերոնշյալ հրամանը կվերադառնար «Մանչեսթեր Սիթի» եւ «Մանչեսթեր Յունայթեդ», այլ ոչ թե Մանչեսթեր Յունայթեդին

Այլապես կարող եք գտնել Միացյալ Նահանգների հետ ավարտվող բոլոր թիմերը, օգտագործելով հետեւյալ շարադրանքը.

grep United $ թիմեր

Վերոնշյալ հրամանը կվերադառնար «Մանչեսթեր Յունայթեդ» եւ «Նյուքասլ Յունայթեդ»:

04-ին 09

Հաշվի առնելով grep- ի օգտագործման թիվը

Եթե ​​չեք ուզում վերադարձնել փաստացի գծերը, որոնք համապատասխանում են grep- ի օգտագործմանը, բայց պարզապես ուզում եք իմանալ, թե որքան կան դուք կարող եք օգտագործել հետեւյալ շարադրանքը.

grep -c կոդ մուտքագրման ֆայլ

Եթե ​​նմուշը երկու անգամ հավասարեցված է, ապա թիվ 2-ը կվերադարձվի:

05-ից 09-ը

Գտեք բոլոր պայմանները, որոնք չեն համընկնում grep- ից

Պատկերացրեք, դուք ունեք տեղանունների ցուցակներ, որոնք նշված են հետեւյալ երկրների հետ.

Դուք կարող եք նկատել, որ colwyn bay- ն չունի դրա հետ կապված որեւէ երկիր:

Երկրի հետ բոլոր տեղերը փնտրելու համար դուք կարող եք օգտագործել հետեւյալ շարադրանքը.

grep land $ տեղեր

Արդյունքները վերադառնում են բոլոր տեղերը, բացի կոլվին բեյից:

Սա ակնհայտ է միայն այն վայրերի համար, որոնք ավարտվում են հողում (հազիվ գիտական):

Դուք կարող եք շրջել ընտրությունը `օգտագործելով հետեւյալ շարադրանքը.

grep -v land $ տեղեր

Սա կգտնի այն բոլոր տեղերը, որոնք չհետաձգվեցին հողի հետ:

06-ից 09-ը

Ինչպես գտնել Դատարկ տողերը Ֆայլերի օգտագործման grep

Պատկերացրեք, որ դուք ունեք մուտքագրման ֆայլ, որը օգտագործվում է երրորդ կողմի կողմից, որը դադարեցնում է ֆայլը կարդալիս, երբ այն գտնում է դատարկ տող հետեւյալ կերպ.

Երբ դիմումը ստանում է լիվերպուլից հետո գիծը, այն կդադարի կարդալ իմաստը colwyn bay- ն ամբողջությամբ բաց թողնված է:

Դուք կարող եք օգտագործել grep- ը դատարկ տողերի որոնման համար `հետեւյալ շարադրանքով.

grep ^ $ տեղեր

Ցավոք, սա հատկապես օգտակար չէ, քանի որ այն պարզապես վերադարձնում է դատարկ գծերը:

Դուք, իհարկե, կարող եք ստանալ դատարկ տողերի թվաքանակը, որպես ստուգ, տեսնելու համար, արդյոք ֆայլը վավեր է.

grep -c ^ $ տեղերը

Այնուամենայնիվ, ավելի օգտակար կլինի իմանալ գծերի համարները, որոնք ունեն դատարկ գծեր, որպեսզի դրանք փոխարինեք: Դուք կարող եք դա անել հետեւյալ հրահանգով.

grep -n ^ $ տեղերը

07-ից 09-ը

Ինչպես փնտրել բրազիլացիների կամ փոքրատառ կերպարների տողեր, օգտագործելով grep- ը

Grep- ի օգտագործումը կարող եք որոշել, թե ֆայլի տողերը ունեն մեծ տառեր, օգտագործելով հետեւյալ շարահյուսությունը.

grep '[AZ]' ֆայլի անունը

Քառակուսի փակագծերը [] թույլ են տալիս որոշել նիշերի շարք: Վերոնշյալ օրինակով այն համապատասխանում է ցանկացած բնույթի, որը գտնվում է A եւ Z- ի միջեւ:

Հետեւաբար փոքրատառ նիշերին համապատասխանելու համար կարող եք օգտագործել հետեւյալ շարադրանքը.

grep '[az]' ֆայլի անունը

Եթե ​​ցանկանում եք համապատասխանել միայն տառերով եւ ոչ թվային կամ այլ նշաններով, կարող եք օգտագործել հետեւյալ շարադրանքը.

grep '[a-zA-Z]' ֆայլի անունը

Դուք կարող եք նույնը անել թվերով.

grep '[0-9]' ֆայլի անունը

08-ը 09

Փնտրում ենք կրկնող ձեւերի օգտագործումը grep- ի միջոցով

Դուք կարող եք օգտագործել գանգուր փակագծեր {} կրկնվող օրինակ փնտրելու համար:

Պատկերացրեք, որ ունեք հեռախոսահամարով ֆայլ հետեւյալ կերպ.

Դուք գիտեք, որ համարի առաջին մասը պետք է լինի երեք նիշ, եւ ցանկանում եք գտնել գծեր, որոնք չեն համապատասխանում այս օրինակին:

Նախորդ օրինակից դուք գիտեք, որ [0-9] ֆայլը վերադարձնում է բոլոր թվերը:

Այս դեպքում մենք ուզում ենք այն գծերը, որոնք սկսվում են երեք թվից, այնուհետեւ `տող (-): Դուք կարող եք դա անել հետեւյալ սինթետիկներով.

grep "^ [0-9] [0-9] [0-9] - թվեր

Ինչպես հայտնի է, նախորդ օրինակներից կարատը (^) նշանակում է, որ գիծը պետք է սկսվի հետեւյալ օրինակով:

[0-9] 0-ից 9-ը կգտնեն ցանկացած թիվ, քանի որ ընդգրկված է երեք անգամ, այն համապատասխանում է 3 թվին: Ի վերջո, կա մի տող, նշելու համար, որ տողը պետք է հաջողության հասնի երեք թվերին:

Օգտագործելով գանգրացնող փակագծերը, դուք կարող եք որոնել ավելի փոքր:

grep "^ [0-9] \ {3 \} - համարները

Սարքը խուսափում է {bracket- ից, որպեսզի այն աշխատում է պարբերական արտահայտության մասով, բայց ըստ էության, այն, ինչ ասում է [0-9] {3}, որը նշանակում է 0-ից 9-ի միջեւ երեք անգամ:

Գլանաձեւ փակագծերը կարող են օգտագործվել հետեւյալ կերպ.

{5,10}

{5,}

{5,10} նշանակում է, որ փնտրվող բնույթը պետք է կրկնվի առնվազն 5 անգամ, բայց ոչ ավելի, քան 10, մինչդեռ 5-ը նշանակում է, որ բնույթը պետք է կրկնվի առնվազն 5 անգամ, բայց դա կարող է լինել ավելին:

09-ին 09

Օգտագործելով grep- ի օգտագործման մյուս հրամաններից ելք

Առայժմ մենք նայեցինք առանձին ֆայլերի ներդիրի օրինակին, սակայն grep- ը կարող է օգտագործել այլ հրահանգներից ելքային որպես օրինակների համապատասխանության համար:

Դրա հիանալի օրինակ է օգտագործում ps գործառույթը, որը ցուցադրում է ակտիվ գործընթացներ:

Օրինակ, գործեք հետեւյալ հրահանգը.

ps -ef

Ձեր համակարգի վրա գործող բոլոր գործընթացները կցուցադրվեն:

Դուք կարող եք grep- ից օգտվել հատուկ որոնման գործընթացի որոնման համար.

ps -ef | grep firefox

Ամփոփում

The grep հրամանը հանդիսանում է Linux- ի հիմնարար հրաման, եւ դա այն է, որ արժե արժե սովորել, քանի որ այն կդարձնի ձեր կյանքը շատ ավելի հեշտ, երբ տերմինալը օգտագործելով ֆայլերի եւ գործընթացների որոնման ընթացքում: