Օգտագործելով grep ֆայլերի վրա, որոնք համապատասխանում են հատուկ չափանիշներին


Grep (գլոբալ կանոնավոր արտահայտություն տպագրություն) հրամանը համընկնում և որոնում է կանոնավոր արտահայտությունների հատուկ օրինակը: Այս հրամանը զտում և որոնում է նիշերի որոշակի օրինակ և ցուցադրում դրանք որպես արդյունք: Այն համարվում է ամենաօգտակար հրամաններից մեկը Unix/Linux-ի նման համակարգերում sysadmin-ների և մշակողների համար:

Linux-ը պարունակում է տարբեր տեսակի հրամաններ և կոմունալ ծառայություններ՝ յուրաքանչյուր առաջադրանքը պարզեցնելու համար: Ի տարբերություն այլ օպերացիոն համակարգերի, Linux-ում ցանկացած ֆայլ գտնելը պարզ է, քանի որ ցանկացած ֆայլ որոնելու համար կարող եք օգտագործել grep հրամանը:

Դուք կարող եք օգտագործել grep հրամանը՝ հատուկ ֆայլի անունը ցուցադրելու համար, որը պարունակում է ձեր փնտրած որոշակի օրինաչափություն: Այնուամենայնիվ, կան մի քանի բաներ, որոնք դուք պետք է հետևեք Linux-ում grep հրամանն օգտագործելիս −

  • Grep-ը լռելյայնորեն մեծատառերի զգայուն հրաման է: Այդ իսկ պատճառով դուք պետք է օգտագործեք -i տարբերակը՝ մեծատառերի անզգայուն օրինաչափությանը համապատասխանելու համար:

  • Դուք պետք է օգտագործեք չակերտներ grep հրամանում, որպեսզի որոնեք կեղևի համար հատուկ նշանակություն ունեցող նիշ:

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

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

Օգտագործելով Grep ֆայլերի վրա, որոնք համապատասխանում են հատուկ չափանիշներին Linux-ում

grep հրամանը նախապես տեղադրված է Linux բաշխումների մեծ մասում: Եկեք ստեղծենք մի քանի նմուշ ֆայլեր «Փաստաթղթեր» գրացուցակում և համընկնենք այդ ֆայլերի տողի կամ սովորական արտահայտության հետ:

~$: sudo tree Documents 
Documents
|__ sample1
|__ sample2
|__ sample3

0 directories, 3 files

Այժմ մենք կփնտրենք այս նմուշային ֆայլերը Linux-ում grep հրամանի տարբեր տարբերակների միջոցով:

Ֆայլերի վրա տառերի նկատմամբ զգայուն որոնման համընկնում

Այն հայտնվում է մեծատառերի նկատմամբ զգայուն որոնման ներքո, եթե դուք պետք է գտնեք ճշգրիտ բառեր և նախշեր՝ օգտագործելով grep ֆայլերի վրա:

grep <pattern> <filename1> <filename2>.....

Այստեղ մենք կփնտրենք «unix» բառը Փաստաթղթերի գրացուցակի բոլոր ֆայլերի մեջ:

Դրա համար օգտագործեք ստորև նշված հրամանը −

~$: grep unix sample1 sample2 sample3
sample1:unix
sample3:unix operating system

Վերոնշյալ հրամանը համապատասխանում է նշված օրինակին և ցուցադրում «unix» պարունակող ֆայլերը։

Ֆայլերի վրա տառերի համար անզգայուն որոնման համընկնում

Դուք կարող եք որոնել ցանկացած օրինաչափություն՝ օգտագործելով -i տարբերակը վերը նշված հրամանով −

grep -i <pattern> <filename1> <filename2>.....

Եկեք ցուցադրենք «unix»-ի հետ կապված բոլոր արդյունքները, բայց տերմինալը ցույց կտա «Unix» կամ «unix» պարունակող բոլոր ֆայլերը:

~$: grep -i "unix" sample1 sample2 sample3
sample1:unix
sample1:Unix
sample2:Unix
sample3:unix operating system

Որոնում հենց համընկնող նախշը

grep հրամանը լռելյայն ցուցադրում է ամբողջ պարբերությունը կամ տողը: Դուք կարող եք ցույց տալ միայն օրինաչափությունը ամբողջ հատվածի կամ տողի փոխարեն՝ օգտագործելով -o տարբերակը grep հրամանով:

grep -o "<pattern>" <filename>

Այստեղ մենք կփնտրենք «Linux» grep հրամանի և դրա -o տարբերակի միջոցով

~$: grep -o "Linux" sample1 sample3
sample1:Linux

Նախշին համապատասխանող ֆայլերի անունների որոնում

Եթե ցանկանում եք որոնել որոշակի օրինաչափություն կամ տող պարունակող ֆայլեր, օգտագործեք հետևյալ հրամանը −

grep -l "<pattern>" <filename1> <filename2>.....

Կամ,

grep -l "<pattern>" *

Օրինակ՝ ստորև նշված հրամանը ցույց կտա ֆայլի անունը «linux» բառը պարունակող ընթացիկ գրացուցակում.

~$: grep -l "linux" *
sample1
sample3

Համապատասխանեցում ցանկացած օրինակին

Օգտագործեք հետևյալ grep հրամանը՝ ֆայլերում ցուցադրելու հատուկ նիշեր, որոնք համապատասխանում են ցանկացած բառի, օրինաչափության և այլնի:

grep "..<letter_pattern>" <filename>

Այստեղ ստորև նշված հրամանը ցույց է տալիս «Linux» և «Unix» նախշերը, որոնք ավարտվում են «x»-ով:

~$: grep "..x" sample1 sample3
sample2:Linux
sample2:Linux
sample2:Unix
sample3:linux
sample3:unix operating system.

Համապատասխանեցում շրջվող օրինակին

Դուք կարող եք համապատասխանեցնել միայն գծերը, որոնք նման չեն նշված օրինակին։ Այս դեպքում դուք կարող եք օգտագործել -v տարբերակը grep հրամանով հետևյալ կերպ −

grep -v "<pattern>" <filename>

Օրինակ, մենք կփնտրենք այն ֆայլերը, որոնք չեն պարունակում «Linux» բառը:

~$: grep -v "Linux" sample1 sample2 sample3
sample1:GNU operating system
sample1:gnu
sample1:Gnu
sample:unix
sample1:linux
sample1:unix
sample2:GNU
sample2:unix
sample3:linux
sample3:unix operating system.
sample3:gnu operating system.

Համապատասխանեցում նախշը, որը սկսվում է կոնկրետ բառով/տողով

«^» կանոնավոր արտահայտությունը սահմանում է հատվածի կամ տողի սկիզբը: Օգտագործելով հետևյալ grep հրամանը, կարող եք ցուցադրել տողերը, որոնք սկսվում են որոշակի օրինակով կամ տողով:

grep "^<pattern>" <filename>

Հետևյալ հրամանում մենք կօգտագործենք grep հրամանը՝ ֆայլերում «gnu» որոնելու համար

~$: grep "^gnu" sample2 sample3
sample3:gnu operating system.

Համապատասխանեցում նախշը, որն ավարտվում է կոնկրետ բառով/տողով

«$» կանոնավոր արտահայտությունը սահմանում է հատվածի/գծի վերջը: Օգտագործելով այս արտահայտությունը grep հրամանով, կարող եք համապատասխանեցնել նշված օրինաչափությամբ/բառով ավարտվող տողերը կամ հատվածները:

grep "<pattern>$" <filename>

Օրինակ, մենք կփնտրենք «համակարգը» բազմաթիվ ֆայլերում −

~$: grep "system$" sample1 sample2 sample3
sample3:unix operating system.
sample3:gnu operating system.

Գրացուցակի օրինակի համար ռեկուրսիվորեն համապատասխանեցում

Եթե ցանկանում եք համապատասխանեցնել օրինաչափությունը ամբողջ գրացուցակի մեջ՝ գրացուցակի հատուկ ֆայլերի փոխարեն, կարող եք օգտագործել -R տարբերակը grep հրամանով, ինչպես սա -

grep -R <pattern> <directory>

Այժմ մենք կգործարկենք grep հրամանը ռեկուրսիվ՝ Փաստաթղթերի գրացուցակում գտնելու «GNU» պարունակող ֆայլերը −

~$: grep -R GNU Documents
Documents/sample2:GNU
Documents/sample1:GNU operating system

Բոնուսային հուշում − Եթե ցանկանում եք որոշակի օրինաչափություն համապատասխանեցնել ընթացիկ գրացուցակում առկա բոլոր ֆայլերի միջև, կարող եք դա անել՝ օգտագործելով -w տարբերակը grep հրամանով հետևյալ կերպ.

grep -w <pattern> *

Ֆայլերի համապատասխանեցում հատուկ ընդլայնումների հետ

Օգտագործեք հետևյալ հրամանը՝ գրացուցակում ներառված հատուկ ընդլայնմամբ ֆայլերում օրինաչափություն որոնելու համար

grep -R --include=*.<file_extention> '<pattern>' <directory>

Ստորև բերված օրինակում grep հրամանը ստուգում է նշված օրինաչափությունը միայն «.txt» ընդլայնմամբ ֆայլերում:

~$: grep -R --include=*.txt 'Linux' Documents
Documents/sample1.txt:Linux is a kernel

Ծանոթագրություն − Դուք կարող եք նաև օգտագործել վերը նշված հրամանը՝ միաժամանակ մի քանի ընդլայնումներով ֆայլերի օրինաչափությունները համապատասխանեցնելու համար:

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

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