בייַשפּיל ניצט פון די לינוקס גרעפּ קאַמאַנד

הקדמה

די לינעפוס גרעפּ באַפֿעל איז געוויינט ווי אַ מעטאָד פֿאַר פילטערינג אַרייַנשרייַב.

גרעפּ שטייט פֿאַר גלאבאלע רעגולער אויסדרוק פּרינטער און אַזוי אין סדר צו נוצן עס יפעקטיוולי, איר זאָל האָבן עטלעכע וויסן וועגן רעגולער אויסדרוקן.

אין דעם אַרטיקל, איך וועט ווייַזן איר אַ נומער פון ביישפילן וואָס וועט העלפן איר פֿאַרשטיין די גרעפּ באַפֿעלן.

01 פון 09

ווי צו זוכן פֿאַר אַ שטריקל אין אַ טעקע ניצן גרעפּ

די לינעל גרעפּ קאַמאַנד.

ימאַגינע איר האָבן אַ טעקסט טעקע גערופן ספרים מיט די ווייַטערדיק קינדער בוך טיטלען:

צו געפֿינען אַלע די ביכער מיט דעם וואָרט "די" אין דעם טיטל איר וואָלט נוצן די פאלגענדע סינטאַקס:

גרעפּ די ביכער

די ווייַטערדיקע רעזולטאַטן וועלן זיין אומגעקערט:

אין יעדער פאַל, די וואָרט "די" וועט זיין כיילייטיד.

באַמערקונג אַז די זוכן איז פאַל שפּירעוודיק אַזוי אויב איינער פון די טיטלען האט "די" אַנשטאָט פון "די" דעמאָלט עס וואָלט נישט האָבן שוין אומגעקערט.

צו איגנאָרירן די פאַל איר קענען לייגן די ווייַטערדיק באַשטימען:

גרעפּ די ביכער - ויסזאָגונג

איר קענען אויך נוצן די-איך באַשטימען ווי גייט:

גרעפּ -י די ביכער

02 פון 09

זוכן פֿאַר אַ שטריקל אין א טעקע ניצן ווילדקאַרדס

די גרעפּ באַפֿעל איז זייער שטאַרק. איר קענען נוצן אַ פּלאַץ פון מוסטער וואָס ריכטן מעטהאָדס צו פילטער רעזולטאטן.

אין דעם בייַשפּיל, איך וועל ווייַזן איר ווי צו זוכן פֿאַר אַ שטריקל אין אַ טעקע ניצן ווילדקאַרדס .

ימאַגינע איר האָבן אַ טעקע גערופן ערטער מיט די ווייַטערדיק סקאַטיש אָרט נעמען:

אָבער

aberystwyth

aberlour

ינווערוריע

ינווערנעסס

newburgh

נייַ הירש

new galloway

glasgow

edinburgh

אויב איר ווילט געפֿינען אַלע די ערטער מיט ינווער אין די נאָמען נוצן די פאלגענדע סינטאַקס:

גרעפּ ינווער * ערטער

די אַסטעריסק (*) ווילדקאַרד שטייט פֿאַר 0 אָדער פילע. דעריבער אויב איר האָבן אַ פּלאַץ גערופן ינווער אָדער אַ אָרט גערופן ינווערנאַס דעמאָלט ביידע וואָלט זיין אומגעקערט.

אן אנדער ווילדקאַרד איר קענען נוצן איז די צייַט (.). איר קענען נוצן דעם צו גלייַכן אַ איין בריוו.

grep inver.r ערטער

די אויבן באַפֿעל וואָלט געפינען ערטער גערופן ינווערוריע און ינוועראַרי אָבער וואָלט נישט געפֿינען ינווערעעריע ווייַל עס קען נאָר זיין אַ ווילדקאַרד צווישן די צוויי ר 'ס ווי דינאַמייטיד דורך די איין צייַט.

די צייַט ווילדקאַרד איז נוצלעך אָבער עס קען פאַרשאַפן פראבלעמען אויב איר האָט איין ווי טייל פון די טעקסט איר זוכט.

פֿאַר בייַשפּיל, קוק אין דעם רשימה פון פעלד נעמען

צו געפֿינען אַלע די about.coms איר קענען נאָר זוכן ניצן די ווייַטערדיק סינטאַקס:

grep * וועגן * פעלד נעמען

די אויבן באַפֿעל וואָלט פאַלן אַראָפּ אויב די רשימה קאַנטיינד די פאלגענדע נאָמען אין עס:

איר קען, דעריבער, פּרובירן די פאלגענדע סינטאַקס:

grep * about.com פעלד נעמען

דעם וואָלט אַרבעט גוט אויב עס איז געווען אַ פעלד מיט די פאלגענדע נאָמען:

aboutycom.com

צו טאַקע זוכן פֿאַר די term about.com איר דאַרפֿן צו אַנטלויפן די פּונקט ווי גייט:

grep * וועגן \ .קאָם פעלד נעמען

די לעצט ווילדקאַרד צו ווייַזן איר איז די קשיא צייכן וואָס שטייט פֿאַר נול אָדער איין כאַראַקטער.

פֿאַר בייַשפּיל:

grep? ber placenames

די אויבן באַפֿעל וואָלט צוריקקומען אַבערדעען, aberystwyth אָדער even berwick.

03 פון 09

זוכן פֿאַר סטרינגס בייַ די אָנהייב און סוף פון שורה ניצן גרעפּ

די קאַראַט (*) און די דאָללאַר ($) סימבאָל לאָזן איר צו זוכן פֿאַר פּאַטערנז אין די אָנהייב און סוף פון שורות.

ימאַדזשאַן איר האָבן אַ טעקע גערופן פוטבאָל מיט די ווייַטערדיק מאַנשאַפֿט נעמען:

אויב איר געוואלט צו געפינען אַלע די טימז וואָס אנגעהויבן מיט מאַנטשעסטער איר וואָלט נוצן די פאלגענדע סינטאַקס:

grep ^ Manchester טימז

די אויבן באַפֿעל וואָלט צוריקקומען מאַנטשעסטער סיטי און מאַנטשעסטער פאַרייניקטע אָבער נישט פק פֿאַראייניקטע פון ​​מאַנטשעסטער.

אַלטערנאַטיוועלי איר קענען געפֿינען אַלע די טימז ענדיקן מיט אמעריקאנער ניצן די פאלגענדע סינטאַקס:

גרעפּ פֿאַראייניקטע $ טימז

די אויבן באַפֿעל וואָלט צוריקקומען מאַנטשעסטער אמעריקאנער און Newcastle United אָבער ניט פק פֿאַראייניקטע פון ​​מאַנטשעסטער.

04 פון 09

ציילן די נומער פון מאַטשאַז ניצן גרעפּ

אויב איר טאָן ניט ווילן צו צוריקקריגן די פאַקטיש שורות וואָס גלייַכן אַ מוסטער ניצן גרעפּ אָבער איר נאָר ווילן צו וויסן ווי פילע עס זענען איר קענען נוצן די פאלגענדע סינטאַקס:

grep -c מוסטער אַרייַנשרייַב טעקע

אויב די מוסטער איז געווען מאַטשט צוויי מאָל דעמאָלט די נומער 2 וואָלט זיין אומגעקערט.

05 פון 09

געפינען אַלע די תּנאָים וואָס טאָן ניט גלייַכן ניצן גרעפּ

ימאַגינע איר האָבן אַ רשימה פון אָרט נעמען מיט די לענדער ליסטעד ווי גייט:

איר קען האָבן באמערקט אַז קאָלווין בוכטע האט קיין לאַנד פארבונדן מיט אים.

צו זוכן פֿאַר אַלע די ערטער מיט אַ לאַנד איר קען נוצן די פאלגענדע סינטאַקס:

גרעפּ לאַנד $ ערטער

די רעזולטאַטן קערט וואָלט זיין אַלע די ערטער אַחוץ פֿאַר קאָלווין ביי.

דעם דאָך נאָר אַרבעט פֿאַר ערטער וואָס סוף אין לאַנד (קוים וויסנשאפטלעכע).

איר קענען פאַרקרימען די אויסקלייַבן ניצן די ווייַטערדיק סינטאַקס:

גרעפּ -וו לאַנד $ ערטער

דאס וואָלט געפֿינען אַלע די ערטער וואָס האט ניט סוף מיט ערד.

06 פון 09

ווי צו געפֿינען עמפּטי לינעס אין פילעס ניצן גראַפּ

ימאַגינע איר האָבן אַן אַרייַנשרייַב טעקע וואָס איז גענוצט דורך א דריט טיילווייַז אַפּלאַקיישאַן אַז סטאַפּס לייענען די טעקע ווען עס געפינט אַ ליידיק שורה ווי גייט:

ווען די אַפּלאַקיישאַן קומט צו די שורה נאָך לעבערפּאָאָל עס וועט האַלטן לייענען טייַטש קאָלווין בוכטע איז מיסט לעגאַמרע.

איר קענען נוצן grep צו זוכן פֿאַר ליידיק שורות מיט די ווייַטערדיק סינטאַקס:

grep ^ $ ערטער

צום באַדויערן דאָס איז נישט דער הויפּט נוציק ווייַל עס נאָר קערט די ליידיק שורות.

איר קענט באַלד באַקומען אַ ציילן פון די נומער פון ליידיק שורות ווי אַ טשעק צו זען אויב די טעקע איז גילטיק ווי גייט:

grep -c ^ $ ערטער

עס וואָלט אָבער זיין מער נוצלעך צו וויסן די שורה נומערן וואָס האָבן אַ ליידיק שורה אַזוי איר קענען פאַרבייַטן זיי. איר קענען טאָן אַז מיט די פאלגענדע באַפֿעל:

grep -n ^ $ ערטער

07 פון 09

ווי צו זוכן פֿאַר סטרינגס פון ופּפּערקאַסע אָדער לעססאַסקאַסע טשאַראַקטער ניצן גרעפּ

ניצן גראַפּ איר קענען באַשטימען וואָס שורות אין אַ טעקע האָבן ופּפּערקאַסע אותיות ניצן די ווייַטערדיק סינטאַקס:

grep '[אַז]' טעקע נאָמען

די קוואַדראַט בראַקאַץ [] לאָזן איר באַשליסן די קייט פון אותיות. אין די אויבן בייַשפּיל עס שוועבעלעך קיין כאַראַקטער וואָס איז צווישן א און ז.

דעריבער צו גלייַכן רעדנשלעפט אותיות איר קענען נוצן די פאלגענדע סינטאַקס:

גרעפּ '[אַז]' פילענאַמע

אויב איר ווילן צו גלייַכן בלויז אותיות און ניט נומעריקס אָדער אנדערע סימבאָלס, איר קענען נוצן די ווייַטערדיק סינטאַקס:

גרעפּ '[אַ-זאַ-ז]' פילענאַמע

איר קענען טאָן די זעלבע מיט נומערן ווי גייט:

grep '[0-9]' טעקע נאָמען

08 פון 09

איר זוכט פֿאַר ריפּיטינג פּאַטטערנס ניצן גרעפּ

איר קענען נוצן קורלי בראַקאַץ {} צו זוכן פֿאַר אַ ריפּיטינג מוסטער.

ימאַגינע איר האָבן אַ טעקע מיט טעלעפאָנירן נומערן ווי גייט:

איר וויסן די ערשטער טייל פון די נומער דארף צו זיין דרייַ דידזשאַץ און איר ווילן צו געפֿינען די שורות וואָס טאָן ניט גלייַכן דעם מוסטער.

פון די פריערדיקע משל איר וויסן אַז [0-9] קערט אַלע נומערן אין אַ טעקע.

אין דעם בייַשפּיל מיר וועלן די שורות וואָס אָנהייבן מיט דרייַ נומערן נאכגעגאנגען דורך אַ ביפען (-). איר קענען טאָן אַז מיט די פאלגענדע סינטאַקס:

גרעפּ "* [0-9] [0-9] [0-9] -" נומערן

ווי מיר וויסן פֿון די ערשטע ביישפּילן די קאַראַט (*) מיטל אַז די שורה זאָל אָנהייבן מיט די פאלגענדע מוסטער.

די [0-9] זוכן פֿאַר קיין נומער צווישן 0 און 9. ווי דאָס איז דרייַ מאָל אַרייַנגערעכנט 3 נומערן. לעסאָף עס איז אַ ביפסטיישאַנער צו דינען אַז אַ ביפסטע מוזן מצליח די דרייַ נומערן.

ניצן די קעראַל בראַקאַץ איר קענען מאַכן די זוכן קלענערער ווי גייט:

גרעפּ "* [0-9] \ {3 \} -" נומערן

דער שקלאַף יסקייפּס די {בראַקאַץ אַזוי אַז עס אַרבעט ווי טייל פון די רעגולער אויסדרוק, אָבער אין עסאַנס וואָס דאָס איז געזאגט איז [0-9] {3} וואָס מיטל קיין נומער צווישן 0 און 9 דרייַ מאָל.

די געגרייַזלט ברעקלעך קענען אויך זיין געניצט ווי גייט:

{5,10}

{5,}

די {5,10} מיטל אַז דער כאַראַקטער וואָס איז געזוכט פֿאַר מוזן זיין ריפּיטיד בייַ מינדסטער 5 מאל אָבער ניט מער ווי 10, און דער {5} מיינט אַז דער כאַראַקטער מוזן זיין ריפּיטיד בייַ מינדסטער 5 מאל אָבער עס קען זיין מער ווי אַז.

09 פון 09

ניצן די רעזולטאַט פון אנדערע קאַמאַנדז ניצן גרעפּ

אַזוי ווייַט מיר האָבן געקוקט אין מוסטער וואָס ריכטן זיך אין יחיד טעקעס אָבער גרעפּ קענען נוצן די רעזולטאַט פון אנדערע קאַמאַנדז ווי די אַרייַנשרייַב פֿאַר מוסטער וואָס ריכטן.

אַ גרויס בייַשפּיל פון דעם איז ניצן די פּס באַפֿעל וואָס רשימות אַקטיוו פּראַסעסאַז.

למשל לויפן די פאלגענדע באַפֿעל:

ps -ef

אַלע די פליסנדיק פּראַסעסאַז אויף דיין סיסטעם וועט זיין געוויזן.

איר קענען נוצן גרעפּ צו זוכן פֿאַר אַ באַזונדער פליסנדיק פּראָצעס ווי גייט:

ps -ef | grep firefox

Summary

די גרעפּ באַפֿעלן איז אַ פונדאַמענטאַל לינוקס באַפֿעלן און עס איז איינער וואָס איז אויך ווערט לערנען ווי עס וועט מאַכן דיין לעבן פיל גרינגער ווען איר זוכט פֿאַר טעקעס און פּראַסעסאַז ווען ניצן די וואָקזאַל.