כיצד להשתמש ב- Grep Command בלינוקס

הבנת פקודת grep עם דוגמאות מעשיות לסינון והצגת תוכן הקובץ בקלות

GREP מייצג 'הדפסה רגילה של ביטוי גלובלי'. זהו כלי שימושי שורת פקודה שמסופק על ידי לינוקס, כדי לחפש את שורת הטקסט התואמת את הדפוס שסיפק המשתמש.

grep לוקח את הקלט מהמשתמש בצורה של מחרוזות או מילים שהמשתמש רוצה לחפש בקובץ מסוים. לאחר מכן הפקודה בודקת את הקובץ שצוין על ידי המשתמש עבור דפוס זה ולאחר מכן מחזירה את השורות התואמות לדפוס שסופק.

זה עושה עבודה מצוינת על ידי סינון התוכן של קובץ ובכך מקל על המשימה שלנו לחפש תוכן מסוים בקבצים בודדים או מרובים בו זמנית.

במאמר זה, הבה נסקור את תפקוד ה- grep פקודה עם כמה דוגמאות מעשיות בפירוט.

אפשרויות זמינות עם grep פקודה

אלו הן כמה מהאפשרויות הבסיסיות בהן תשתמש לעתים קרובות עם grep פקודה.

אוֹפְּצִיָהתיאור
-אנילחיפוש לא תלוי רישיות
כדי לחפש באופן רקורסיבי את כל הקבצים בספרייה שצוינה ובתיקיות המשנה שלה
כדי להציג את מספר הפעמים הכולל שמופיעה מחרוזת
-vכדי להציג את השורות הלא תואמות
-ווסנן עבור המילה הספציפית הזו בשימוש בנפרד

משתמש ב grep פקודה

grep הפקודה משמשת בדרך כלל עם הצינור (|) שירות. זה יכול להיות מיושם עם צינור המעטפת כאשר אתה רוצה להשתמש בו עם כמה פקודות לינוקס אחרות. למרות ש, grep ניתן להשתמש גם בנפרד ללא הצינור (|) שירות.

הבה נראה כמה מהתחבירים הבסיסיים של ה grep פקודה עם ובלי כלי הצינור.

הרשו לי תחילה להראות לכם את קובץ הטקסט לדוגמה שבו אשתמש כדי להמחיש את grep פקודה.

הודו היא מדינה יפהפיה של אנשים אוהבי שלום. הודו עומדת על שלושה עמודים של בית מחוקקים, מבצעת ורשות שופטת. הודו היא מדינה יפה של אנשים אוהבי שלום. הודו דואגת לאנשים שכן המשאב שלה קואורדינטות קרטזיות החשיבות של כל הקואורדינטות הקרטזיות. להלן שתי שורות ריקות. שימוש בעגלת שוורים הוא מחזה נפוץ בכפר עבור המטלות החקלאיות. זהו הסוף של קובץ הדוגמה.

grep בשימוש עם צינור ( | )תוֹעֶלֶת

grep ניתן ליישם את הפקודה יחד עם פקודות לינוקס אחרות באמצעות צינורות המעטפת. כמו, באמצעות חתול הפקודה כדי להציג את תוכן הקובץ, אך באותו הזמן להעביר את הפלט באמצעות ה- grep פקודה להציג רק את התוכן שאתה רוצה לראות. זה יהיה ברור יותר כשנעבור על הדוגמה.

תחביר:

[פקודה] | grep [מחרוזת]

דוגמא:

cat sample.txt | grep בית המחוקקים

כאן, השתמשתי ב- חתול הפקודה כדי להציג כמה שורות מקובץ 'sample.txt'. יש להציג רק את השורות שמכילות את המילה 'בית מחוקקים' ולהתעלם משאר השורות.

תְפוּקָה:

gaurav@ubuntu:~/workspace$ cat sample.txt | grep המחוקקים הודו עומדת על שלושה עמודי התווך של בית המחוקקים, הרשות המבצעת והשופטת. gaurav@ubuntu:~/workspace$

grep בשימוש ללא צינור ( | )תוֹעֶלֶת

grep ניתן אפילו להשתמש ישירות כפקודה בודדת מבלי להשתמש בצינור ( | ) שירות.

תחביר:

grep [string_to_be_searched] [שם קובץ]

דוגמא:

grep India sample.txt

תְפוּקָה:

הודו היא מדינה יפה של אנשים אוהבי שלום. הודו דואגת לאנשים בתור המשאב שלה

לפיכך, השתמשתי ב- grep הפקודה ישירות כדי לסנן את השורות המכילות את המחרוזת 'הודו' מקובץ הטקסט 'sample.txt'.

חיפוש חסר רישיות באמצעות grep פקודה

לינוקס נזהרת מאוד לגבי רגישות רישיות כאשר אנו מפעילים את הפקודות בטרמינל. זה דורש מהמשתמש להיות זהיר לגבי המקרה של המחרוזת שהוכנסה לפקודה.

הבה נראה זאת באמצעות דוגמה.

grep peace sample.txt

במקרה זה, לא נקבל פלט מכיוון שלא קיימת מילה בתור 'שלום' בקובץ המדגם. יש לנו את המילה 'שלום' עם 'P' גדול. המילה זהה אבל כשאנחנו משתמשים ב- grep פקודה ללא כל אפשרות, הוא מחפש את ההתאמה המדויקת בקובץ, תוך התעלמות מכל שינוי באותיות.

כדי למנוע אי בהירות זו, אתה יכול פשוט להשתמש ב- -אני אפשרות שממש אומרת את grep פקודה "תשכח מהמקרה שהכנסתי אליו את המחרוזת ופשוט חפש את כל התבניות התואמות בקובץ."

תחביר:

grep -i [מחרוזת] [שם קובץ]

דוגמא:

grep -i peace sample.txt

תְפוּקָה:

הודו היא מדינה יפהפיה של אנשים אוהבי שלום. הודו היא מדינה יפה של אנשים אוהבי שלום.

כל השורות התואמות מוצגות ללא קשר למקרה בו נמצאת המחרוזת המתאימה.

חיפוש רקורסיבי באמצעות grep פקודה

ה option תחפש את כל הקבצים בספרייה ואת כל ספריות המשנה שלה שתואמות לתבנית המחרוזת שסיפק המשתמש בפקודה.

תחביר:

grep -i -r [מחרוזת] [נתיב_קובץ]

דוגמא:

grep -i -r tomcat /home/gaurav/workspace

המחרוזת כאן היא 'tomcat' והיא תבוצע בחיפוש בסביבת העבודה של הספרייה. כל ספריות המשנה והקבצים בספריית 'סביבת העבודה' גם ייסרקו כך שיתאימו לדפוס המחרוזת שסופק.

תְפוּקָה:

./context_log.policy:// catalina.policy - הרשאות מדיניות אבטחה עבור Tomcat 7 ./context_log.policy:// הערה: אם tomcat-juli.jar נמצא ב-${catalina.base} ולא ב-${catalina.home }, ./context_log.policy:// grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..} ./context_log.policy:grant codeBase "file:${catalina.home }/bin/tomcat-juli.jar" { ./context_log.policy: permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; ./context.xml: ./catalina.properties:# - Tomcat Bootstrap JARs ./catalina.properties:# - Tomcat API JARs ./catalina.properties:# - Tomcat JARs ./catalina.properties:# - נפוצים שאינם Tomcat JARs ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catalina.properties:# tomcat.util.buf.StringCache.char.enabled=true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000. /server.xml: pathname="conf/tomcat-users.xml" /> ./server.xml: 

הערה: בזמן השימוש ב- אפשרות עם ה grep הפקודה שעלינו לספק את הנתיב של הקובץ ולא את שם הקובץ

חיפוש מילים שלמות רק עם grep פקודה

פעמים רבות המקרה הוא שאתה תחפש מילה אחת אבל בסופו של דבר תאכלס את הטרמינל שלך בשורות התואמות שאכן מכילות את המילה התואמת שלך אבל לא כמילה בודדת. ייתכן שתראה את השורות המכילות כמה מילים שחלק המשנה שלהן הוא המחרוזת שהזנת.

מבולבלים עם זה? אל תדאג, זה הרבה יותר קל להבין ברגע שאתה מקבל את הדוגמה.

דוגמא:

כאן, אני רוצה לחפש מילה בודדת 'עגלה' ולהציג את כל השורות התואמות למילה זו בקובץ 'sample.txt'.

grep -i cart sample.txt

תְפוּקָה:

הקואורדינטות הקרטזיות חשיבותן של כל הקואורדינטות הקרטזיות. שימוש בעגלת שוורים הוא מחזה נפוץ בכפר עבור המטלות החקלאיות. העגלה נעלמה כשהילד השאיר אותה משוחררת.

בפלט, אתה יכול לראות שהמילה 'קרטזית' מכילה גם את המילה 'עגלה' ומכאן שגם השורות המכילות את המילה 'קרטזית' מוצגות למרות שאיננו רוצים שהן יוצגו.

אתה יכול להשתמש ב -וו אפשרות עם ה grep פקודה לפתור אי בהירות זו.

תחביר:

grep -i -w [מחרוזת] [שם קובץ]

דוגמא:

grep -i -w cart sample.txt

תְפוּקָה:

שימוש בעגלת שוורים הוא מחזה נפוץ בכפר עבור המטלות החקלאיות. העגלה נעלמה כשהילד השאיר אותה רופפת. 

כעת, לאחר שהשתמשת ב-w אפשרות עם grep תקבל רק את השורות שבהן המילה 'עגלה' משמשת כמכלול.

חיפוש הפוך באמצעות grep פקודה

grep ניתן להשתמש בפקודה גם בצורה הפוכה. אנחנו יכולים להשתמש ב grep פקודה הפוכה על ידי הסתרת השורות התואמות והצגת השורות בהן לא נמצאה ההתאמה. אתה יכול לעשות זאת באמצעות -v אפשרות עם ה grep פקודה.

תחביר:

grep -i -v [מחרוזת] [שם קובץ]

דוגמא:

grep -i -v resource sample.txt

תְפוּקָה:

הודו היא מדינה יפהפיה של אנשים אוהבי שלום. הודו עומדת על שלושה עמודים של בית מחוקקים, מבצעת ורשות שופטת. הודו היא מדינה יפה של אנשים אוהבי שלום. קואורדינטות קרטזיות חשיבותן של כל הקואורדינטות הקרטזיות. שימוש בעגלת שוורים הוא מחזה נפוץ בכפר עבור המטלות החקלאיות. זהו הסוף של קובץ הדוגמה.

בפלט, כל שאר השורות מוצגות מלבד השורה המכילה את המילה 'משאב'.

ספירת מופעים של מחרוזת תואמת

הפלט של ה grep הפקודה היא בדרך כלל ארוכה מאוד אם הנתונים בקובץ נרחבים. ככל שההתאמות גדולות יותר, כך התפוקות של ה- grep פקודה. לינוקס מספקת לך אפשרות שבה תוכל להציג את מספר מופעי ההתאמה.

תחביר:

grep -i -c [מחרוזת] [שם קובץ]

דוגמא:

grep -i -c india sample.txt

תְפוּקָה:

gaurav@ubuntu:~/workspace$ grep -i -c india sample.txt 4 gaurav@ubuntu:~/workspace$

כאן, הפלט הוא מספר שהוא מספר המופעים של המילה 'הודו' בקובץ sample.txt.

הערה: השתמשתי ב- -אני אפשרות בכל דוגמה פשוט להיות בטוח עם נושא רגישות המקרים. במקרה שאתה בטוח לגבי המקרה של המילה שאתה מחפש, אז אתה יכול בבטחה להשמיט את המילה -אני אוֹפְּצִיָה.

סיכום

למדנו את השימושים הבסיסיים של grep פקודה על מערכות לינוקס במדריך זה. למדנו גם להציג תכנים שונים המתאימים ביותר לדרישות שלנו ולא להעמיס את הטרמינל בהמון שורות. grep הפקודה תהיה בוודאי חוסכת זמן אם תשמש לסריקת ערכות נתונים גדולות.