Ինչպե՞ս գտնել մի քանի տողեր, նախշեր կամ բառեր:
Ներածություն
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), օգտվողները կարող են որոնել կոնկրետ բառեր ավելի մեծ համատեքստում: