Ինչպե՞ս գտնել մի քանի տողեր, նախշեր կամ բառեր:


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

Grep-ը Linux/Unix համակարգերում ամենահզոր և լայնորեն օգտագործվող հրամանի տող գործիքներից մեկն է: Այն նշանակում է «Global Regular Expression Print» և օգտագործվում է տեքստային ֆայլեր որոնելու կամ հատուկ նախշերի կամ տողերի համար հրամաններ ստանալու համար:

Այն կարող է որոնել ամբողջ գրացուցակի կառուցվածքում, զտել արդյունքները և ցուցադրել միայն համապատասխան տվյալներ օգտագործողին: Grep-ը բազմակողմանի գործիք է, որը կարող է օգտագործվել բազմաթիվ տարբեր խնդիրների համար, ներառյալ համակարգի կառավարումը, ծրագրավորումը և տվյալների վերլուծությունը:

Հիմնական Grep հրամաններ

Grep-ը հրամանի տող հզոր գործիք է, որն օգտագործվում է Unix-ի վրա հիմնված օպերացիոն համակարգերում՝ ֆայլերում կամ այլ հրամաններից ստացված տեքստի հատուկ օրինաչափություններ կամ տողեր որոնելու համար: Պարզ grep հրամանի հիմնական շարահյուսությունը հետևյալն է

grep [options] pattern [file] 

«Նախշը» տողը կամ կանոնավոր արտահայտությունն է, որը ցանկանում եք որոնել, իսկ «ֆայլ» արգումենտը նշում է այն ֆայլի անունը, որում ցանկանում եք որոնել:

Եթե ֆայլի անուն չի տրվում, grep-ը կկարդա ստանդարտ մուտքագրումից (օրինակ՝ ելքը մեկ այլ հրամանից): grep-ի հետ օգտագործվող ամենատարածված տարբերակներից մեկը «-i»-ն է, որը որոնումը դարձնում է անզգայուն:

Օրինակներ, թե ինչպես փնտրել մեկ տող կամ օրինակ

Ֆայլում մեկ տող որոնելու համար օգտագործեք հետևյալ հիմնական շարահյուսությունը −

bash grep 'string' filename  

Օրինակ, եթե ցանկանում եք գտնել «խնձոր» բառի բոլոր երևույթները «fruits.txt» անունով ֆայլում, դուք կօգտագործեիք −

grep 'apple' fruits.txt 

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

Օրինակ, եթե ցանկանում եք գտնել բոլոր այն բառերը, որոնք սկսվում են «a»-ով, որին հաջորդում է որևէ գրանշան և ավարտվում «le»-ով, կարող եք օգտագործել −

grep 'a.*le' fruits.txt 

Սա կհամընկնի «խնձոր», «կարող» և «ավոկադո» բառերի հետ:

Հասկանալը հիմնական Grep հրամանները, ինչպիսիք են շարահյուսությունը և ընտրանքները, կարևոր է նախքան բազմաթիվ տողեր կամ նախշեր որոնելը: Միայնակ տողերի որոնումը պահանջում է չակերտներ օգտագործել ձեր ցանկալի տողի շուրջ, մինչդեռ նախշերի որոնումը պահանջում է կանոնավոր արտահայտությունների օգտագործում:

Բազմաթիվ տողերի կամ նախշերի որոնում

Grep-ը աներևակայելի հզոր գործիք է, որը կարող է օգտագործվել տվյալ ֆայլում կամ գրացուցակում բազմաթիվ տողեր կամ նախշեր որոնելու համար: Լռելյայնորեն, Grep-ը կփնտրի տվյալ օրինաչափության առաջին դեպքը ֆայլում, բայց ի՞նչ, եթե մենք ուզում ենք գտնել տարբեր օրինաչափությունների մի քանի դեպքեր միանգամից:

Այստեղ է, որ OR (|) օպերատորը հարմար է: OR օպերատորը մեզ թույլ է տալիս միաժամանակ մի քանի տողեր կամ նախշեր որոնել:

Այս տարբերակն օգտագործելու համար պարզապես նշեք յուրաքանչյուր տող կամ նախշ, որն առանձնացված է ԿԱՄ նշանով: Օրինակ, ենթադրենք, որ ուզում ենք գտնել «խնձորի» կամ «բանանի» բոլոր երևույթները «fruits.txt» կոչվող ֆայլում:

Մենք կօգտագործեինք հետևյալ հրամանը −

grep 'apple|banana' fruits.txt  

Այս հրամանը կվերադարձնի բոլոր տողերը, որոնք պարունակում են կամ «խնձոր» կամ «բանան»: Կարևոր է նշել, որ OR օպերատորն օգտագործելիս յուրաքանչյուր տող կամ օրինաչափություն պետք է ներառված լինի իր չակերտների մեջ:

OR օպերատորը կարող է զուգակցվել նաև Grep-ի այլ տարբերակների հետ, ինչպիսիք են՝ -i (գործերի նկատմամբ անզգույշ), -v (շրջել համընկնում) և -r (ռեկուրսիվ): Օրինակ, ենթադրենք, որ ուզում ենք որոնել բոլոր տողերը, որոնք պարունակում են կա՛մ «խնձոր», «բանան» կամ «բալ» ցանկացած ֆայլում՝ «fruts_folder» կոչվող գրացուցակում։

Մենք կօգտագործեինք հետևյալ հրամանը −

grep -ir 'apple|banana|cherry' fruits_folder/ 

Բառերի որոնում կոնկրետ համատեքստում

Grep-ը կարող է օգտագործվել որոշակի համատեքստում կոնկրետ բառեր կամ նախշեր որոնելու համար: Սա հատկապես օգտակար է, երբ ձեզ անհրաժեշտ է որոշակի թեմայի հետ կապված տեղեկատվություն գտնել և ցանկանում եք տեսնել շրջակա տեքստի մի մասը՝ ավելի շատ համատեքստ ստանալու համար: Համատեքստի ընտրանքները Grep-ում թույլ են տալիս նշել, թե համատեքստի քանի տող պետք է ցուցադրվի յուրաքանչյուր հանդիպումից առաջ և/կամ հետո:

Բացատրություն, թե ինչպես օգտագործել Grep-ը համատեքստի ընտրանքներով (-A, -B, -C)

Grep-ում կան երեք տարբեր համատեքստի տարբերակներ

  • -A − ցուցադրում է տողերի նշված թիվը յուրաքանչյուր հանդիպումից հետո

  • -B − ցուցադրում է նշված թվով տողեր յուրաքանչյուր խաղից առաջ

  • -C −ցուցադրում է նշված թվով տողեր յուրաքանչյուր հանդիպումից առաջ և հետո: Դուք կարող եք օգտագործել այս տարբերակների ցանկացած համակցություն՝ կախված նրանից, թե ինչ տեսակի համատեքստ է Ձեզ անհրաժեշտ:

Միայն ճշգրիտ համընկնումների որոնում

Երբևէ հիասթափվե՞լ եք, երբ փորձում եք ճշգրիտ բառ կամ արտահայտություն որոնել Grep-ի միջոցով, բայց որոնման արդյունքները բերում են նաև մասնակի համընկնումների մի փունջ: Սա կարող է հատկապես տարածված լինել, երբ որոնում եք մեծ քանակությամբ տեքստով մեծ ֆայլեր: Բարեբախտաբար, Grep-ում կա մի տարբերակ, որը թույլ է տալիս որոնել միայն ճշգրիտ համընկնումներ – բառի սահմանային տարբերակ:

Բառի սահմանային տարբերակը բացատրված է

Բառի սահմանային տարբերակը (\b) հատուկ նիշ է, որը Գրեպին ասում է համապատասխանել միայն այն բառերին, որոնք ունեն և՛ սկիզբ, և՛ վերջ: Այն օգնում է համոզվել, որ ձեր որոնման արդյունքները չներառեն որևէ մասնակի համընկնում (օրինակ, եթե որոնում եք «կատու», այն չի վերադարձնի այնպիսի արդյունքներ, ինչպիսիք են «թրթուր» կամ «ցրված»): \b նիշը սովորաբար օգտագործվում է այլ որոնման տերմինների հետ համատեղ՝ ավելի կատարելագործված որոնում ստեղծելու համար:

Որպեսզի ձեր որոնումը ընդգրկի միայն «խնձոր» բառի օրինակները, ավելացրեք \b նիշը բառից առաջ և հետո −

grep '\bapple\b' file.txt 

Սա կվերադարձնի միայն տողերը, որոնցում հայտնվում է «խնձոր» ճշգրիտ արտահայտությունը:

Ճշգրիտ համընկնման որոնումների օրինակներ՝ օգտագործելով Բառի սահմանային տարբերակը

Ահա որոշ օրինակներ, թե ինչպես կարող եք գործնականում օգտագործել սահմանային բառի տարբերակը.

grep '\bbook\b' file.txt
  • Գտնել և՛ «կատու», և՛ «կատուների» բոլոր դեպքերը, բայց ոչ այդ տառերը պարունակող որևէ այլ բառ − grep '\bcat\b' file.txt- Գտնել «տվյալների վերլուծություն» ճշգրիտ արտահայտության բոլոր դեպքերը.

grep '\bdata analysis\b' file.txt

Բառի սահմանային տարբերակի օգտագործումը կարող է զգալիորեն բարելավել ձեր Grep որոնումների ճշգրտությունն ու համապատասխանությունը: Փորձեք որոնման տերմինների տարբեր համակցություններով և ճշգրտեք ձեր արդյունքները, մինչև գտնեք այն, ինչ փնտրում եք:

Որոնում՝ օգտագործելով կանոնավոր արտահայտություններ

Կանոնավոր արտահայտությունները նիշերի մի շարք են, որոնք օգտագործվում են որոնման օրինաչափությունները սահմանելու համար: Դրանք թույլ են տալիս ավելի բարդ և կոնկրետ որոնումներ, քան պարզ տողերի կամ օրինաչափությունների համապատասխանությունը:

Կանոնավոր արտահայտությունները ապահովում են ֆայլերում տեքստի որոնման ճկուն եղանակ և կարող են օգտագործվել տվյալների մեծ հավաքածուներից տեղեկատվություն հանելու համար: Grep-ն ունի կանոնավոր արտահայտությունների ներկառուցված աջակցություն՝ այն դարձնելով հիանալի գործիք բարդ որոնումներ կատարելու համար:

Կանոնավոր արտահայտությունների բացատրություն և դրանց օգտագործումը Grep որոնումների ժամանակ

Կանոնավոր արտահայտությունները բաղկացած են տարբեր նիշերից, որոնք հատուկ նշանակություն ունեն, երբ օգտագործվում են Grep-ի հետ: Օրինակ, կետ (.) նիշը համապատասխանում է ցանկացած նիշի, մինչդեռ աստղանիշը (*) համապատասխանում է նախորդ նիշի զրոյին կամ ավելիին: Խողովակի (|) նիշն օգտագործվում է բազմաթիվ որոնման օրինաչափություններ առանձնացնելու համար, մինչդեռ փակագծերը ([]) օգտագործվում են նիշերի հավաքածու ստեղծելու համար, որը համապատասխանում է կցված նիշերից որևէ մեկին:

Կանոնավոր արտահայտությունների հզոր առանձնահատկություններից մեկը խմբեր և հետհղումներ օգտագործելու ունակությունն է: Խմբերը ստեղծվում են՝ փակագծերում արտահայտության մի մասը փակելով():

Եզրակացություն

Grep-ը հզոր գործիք է, որը թույլ է տալիս օգտվողներին որոնել մի քանի տողեր, նախշեր կամ բառեր տվյալ ֆայլում: Տիրապետելով Grep-ի հիմնական հրամաններին և շարահյուսությանը, օգտատերերը կարող են հեշտությամբ որոնել տողի կամ օրինակի առանձին օրինակներ: Այնուամենայնիվ, Grep-ի իրական ուժը կայանում է նրանում, որ նա կարող է միանգամից մի քանի տողեր կամ նախշեր որոնել:

Օգտագործելով OR օպերատորը (|), օգտվողները կարող են ընդլայնել իրենց որոնումները՝ միաժամանակ ներառելով բազմաթիվ տարբեր հնարավորություններ: Բացի այդ, օգտագործելով համատեքստի ընտրանքները (-A, -B, -C), օգտվողները կարող են որոնել կոնկրետ բառեր ավելի մեծ համատեքստում: