OnWorks Linux ו-Windows Online WorkStations

לוגו

אירוח מקוון בחינם עבור תחנות עבודה

<הקודם | תוכן | הבא>

grep

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


עד כה, השתמשנו grep עם מחרוזות קבועות, כך:


[me@linuxbox ~]$ ls /usr/bin | grep zip

[me@linuxbox ~]$ ls /usr/bin | grep zip


זה יפרט את כל הקבצים ב- / usr / bin ספרייה ששמותיה מכילים את המחרוזת המשנה "zip".

אל האני grep התוכנית מקבלת אפשרויות וארגומנטים בדרך זו:

grep [אפשרויות] regex [קוֹבֶץ...]

איפה regex הוא ביטוי רגולרי.

להלן רשימה של הנפוצים בשימוש grep אפשרויות:


טבלה 19-1: אפשרויות grep


תיאור אפשרות

תיאור אפשרות

-i התעלם מהמקרה. אין להבחין בין אותיות גדולות וקטנות. ניתן גם לפרט --התעלם ממקרה.


תמונה

-v הפוך התאמה. בדרך כלל, grep מדפיס שורות המכילות התאמה.

אפשרות זו גורמת grep כדי להדפיס כל שורה שאינה מכילה התאמה. ניתן גם לפרט --היפוך-התאמה.


תמונה

-c הדפס את מספר ההתאמות (או אי-התאמות אם -v אפשרות מצוינת גם) במקום הקווים עצמם. ניתן גם לפרט --לספור.


תמונה

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


תמונה

-L כמו האפשרות -l, אבל הדפס רק את שמות הקבצים שאינם מכילים התאמות. ניתן גם לציין --files-without- match.


תמונה

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


תמונה

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


תמונה


על מנת לחקור בצורה מלאה יותר grep, בואו ניצור כמה קבצי טקסט לחיפוש:

grep


[me@linuxbox ~]$ ls /bin > dirlist-bin.txt [me@linuxbox ~]$ ls /usr/bin > dirlist-usr-bin.txt [me@linuxbox ~]$ ls /sbin > dirlist-sbin.txt [me@linuxbox ~]$ ls /usr/sbin > dirlist-usr-sbin.txt [me@linuxbox ~]$ ls dirlist*.txt

dirlist-bin.txt dirlist-sbin.txt dirlist-usr-sbin.txt dirlist-usr-bin.txt

[me@linuxbox ~]$ ls /bin > dirlist-bin.txt [me@linuxbox ~]$ ls /usr/bin > dirlist-usr-bin.txt [me@linuxbox ~]$ ls /sbin > dirlist-sbin.txt [me@linuxbox ~]$ ls /usr/sbin > dirlist-usr-sbin.txt [me@linuxbox ~]$ ls dirlist*.txt

dirlist-bin.txt dirlist-sbin.txt dirlist-usr-sbin.txt dirlist-usr-bin.txt


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



[me@linuxbox ~]$ grep bzip dirlist*.txt

dirlist-bin.txt:bzip2 dirlist-bin.txt:bzip2recover

[me@linuxbox ~]$ grep bzip dirlist*.txt

dirlist-bin.txt:bzip2 dirlist-bin.txt:bzip2recover


בדוגמה זו, grep מחפש את המחרוזת בכל הקבצים הרשומים bzip ומוצא שתי התאמות, שתיהן בקובץ dirlist-bin.txt. אם היינו מעוניינים רק ברשימת הקבצים שהכילו התאמות ולא ההתאמות עצמן, נוכל לציין את -l אפשרות:



[me@linuxbox ~]$ grep -l bzip dirlist*.txt

dirlist-bin.txt

[me@linuxbox ~]$ grep -l bzip dirlist*.txt

dirlist-bin.txt


לעומת זאת, אם נרצה לראות רק רשימה של הקבצים שלא מכילים התאמה, נוכל לעשות זאת:



[me@linuxbox ~]$ grep -L bzip dirlist*.txt

dirlist-sbin.txt dirlist-usr-bin.txt dirlist-usr-sbin.txt

[me@linuxbox ~]$ grep -L bzip dirlist*.txt

dirlist-sbin.txt dirlist-usr-bin.txt dirlist-usr-sbin.txt


מחשוב ענן מערכת ההפעלה המוביל ב-OnWorks: