פקודת Grep בלינוקס

Grep Command Linux



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

במאמר זה נסביר את השימוש ב- grep utility בעזרת דוגמאות שונות. נשתמש ב- Debian 10 להסברת הפקודות והשיטות המוזכרות במאמר זה.







התקנת Grep

Grep מותקן ברוב הפצות לינוקס. אולם במקרה שהוא חסר במערכת שלך, תוכל להתקין אותה בשיטה הבאה בטרמינל:



$סודו apt-get להתקין אחיזה

שימוש ב- Grep

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



$אחיזה [אפשרויות]תבנית[קוֹבֶץ...]

חפש קבצים

כדי לחפש שם קובץ בספרייה המכילה מחרוזת ספציפית, תוכל להשתמש ב- grep באופן הבא:





$ls | אחיזה -אניחוּט

לדוגמה, לחפש שם קובץ המכיל מחרוזת מִבְחָן , הפקודה תהיה:

$ls| אחיזה-אנימִבְחָן

פקודה זו מפרטת את כל הקבצים המכילים את המחרוזת מִבְחָן .



חפש מחרוזת בקובץ

כדי לחפש מחרוזת בקובץ מסוים, תוכל להשתמש בתחביר הפקודה הבא:

$אחיזהשם קובץ מחרוזת

למשל, לחפש מחרוזת מִבְחָן בקובץ בשם קובץ test1 , השתמשנו בפקודה הבאה :

$אחיזהקובץ מבחן לעובד 1

הפלט לעיל החזיר את המשפט מה- קובץ test1 המכיל את המחרוזת עוֹבֵד .

חפש מחרוזת במספר קבצים

כדי לחפש מחרוזת במספר קבצים, תוכל להשתמש בתחביר הפקודה הבא:

$אחיזהמחרוזת שם קובץ 1 שם קובץ 2

לדוגמה, כדי לחפש עובד מחרוזת בשני הקבצים שלנו testfile1 ו- testfile2, השתמשנו בפקודה הבאה:

$אחיזהקובץ test test של העובד 1 testfile2

הפקודה לעיל תפרט את כל השורות המכילות את עובד המחרוזת משני הקבצים testfile1 ו- testfile2.

תוכל גם להשתמש בתו כללי אם כל שמות הקבצים מתחילים באותו טקסט.

$אחיזהשם קובץ מחרוזת*

כאילו, אם ניקח את הדוגמה למעלה שבה היו שמות הקבצים שלנו testfile1 ו- testfile2 , הפקודה תהיה:

$אחיזהקובץ מבחן של עובדים*

חפש מחרוזת בקובץ על ידי התעלמות מהמקרה של המחרוזת

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

אתה יכול להגיד ל- grep להתעלם מהמקרה של מחרוזת חיפוש באמצעות –i דגל אחרי grep כדלקמן:

$אחיזה–אני שם קובץ מחרוזת

על ידי שימוש בדגל –i, הפקודה תבצע את החיפוש ללא רגישות רישיות ותחזיר את כל השורות המכילות את המחרוזת עוֹבֵד בו מבלי לקחת בחשבון האותיות באותיות גדולות או קטנות.

חפש באמצעות הביטוי הרגיל

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

$אחיזהמילת מפתח מתחילה.*ending שם קובץ המפתח

לדוגמה, כדי לחפש שורה בקובץ בשם testfile1 שמתחיל במחרוזת זו ומסתיים בנתוני המחרוזת, השתמשנו בפקודה הבאה:

$אחיזהזֶה.*קובץ מבחן נתונים 1

הוא ידפיס את כל השורה מתוך קובץ test1 המכיל את הביטוי (מילת המפתח מתחילה זו ונתוני מילת המפתח המסתיימים).

הדפס מספר שורות מסוים אחרי/לפני מחרוזת החיפוש

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

$אחיזה <נ>שם קובץ מחרוזת

הוא יציג מספר N שורות לאחר התאמת המחרוזת בקובץ שצוין כולל המחרוזת התואמת.

לדוגמה, זהו שם הקובץ לדוגמא שלנו testfile2 .

הפקודה הבאה תפלט את השורה התואמת המכילה את המחרוזת עוֹבֵד , יחד עם 2 השורות שאחריו.

$אחיזה2–אני קובץ test2 של העובד

באופן דומה, כדי להציג מספר N של שורות לפני המחרוזת התואמת בקובץ ספציפי, השתמש בתחביר הבא:

$אחיזה <נ>שם קובץ מחרוזת

כדי להציג מספר N שורות סביב המחרוזת בקובץ ספציפי, השתמש בתחביר הבא:

$אחיזה <נ>שם קובץ מחרוזת

הדגשת החיפוש

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

ניתן להשתמש בתחביר הבא למטרה זו:

$אחיזהשם קובץ מחרוזת--צֶבַע

ספירת מספר ההתאמות

אם אתה רוצה לספור כמה פעמים מילה מסוימת מופיעה בקובץ ספציפי, תוכל להשתמש באפשרות grep with –c. הוא מחזיר רק את מספר ההתאמות ולא את ההתאמות עצמן. ניתן להשתמש בתחביר הבא למטרה זו:

$אחיזה–C שם קובץ מחרוזת

קובץ הדוגמא שלנו נראה כך:

להלן דוגמה לפקודה שהחזירה את מספר הפעמים שהמילה קוֹבֶץ הופיע בקובץ בשם קובץ test3 .

חיפוש הפוך

לפעמים אתה רוצה לבצע חיפוש הפוך המציג את כל השורות פרט לזה שהתאים לקלט. לשם כך, פשוט השתמש בדגל –v ואחריו grep:

$אחיזה–V שם קובץ מחרוזת

לדוגמה, כדי להציג את כל השורות בקובץ קובץ test3 שאינם מכילים בהם את המילה חשבון, השתמשנו בפקודה הבאה:

$אחיזה–V testfile3

שימוש ב- Grep עם פקודות אחרות

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

$מַתְאִים--מוּתקָןרשימה| אחיזהאוֹטוֹמָטִי

באופן דומה, lscpu מספק מידע מפורט אודות המעבד. אם אתה רק מעוניין במידע בנוגע לארכיטקטורת המעבד, תוכל לסנן אותו באמצעות הפקודה הבאה:

$lscpu| אחיזהארכיטקטורה

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