Anonim

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

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

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

לפני שאתה מתחיל

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

grep PATTERN

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

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

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

$ ps -ef | grep www-data

התפוקה שתקבל צריכה להיראות כך:

www-data 18247 12675 4 16:00? 00:00:00 php-fpm: בריכה www
root 18272 17714 0 16:00 pts / 0 00:00:00 grep –color = auto – exclude-dir = .bzr –exclude-dir = CVS –exclude-dir = .git –exclude-dir = .hg –exclude- dir dir = .svn www-data
www-data 31147 12770 0 אוקטובר 22? 00:05:51 nginx: תהליך עובד
www-data 31148 12770 0 אוקטובר 22? 00:00:00 nginx: תהליך ניהול מטמון

יש דרך להחריג את שורת הפקודה הכוללת תהליכי grep. לשם כך, עליך להשתמש ב- $ ps -ef | grep www-data | פקודה grep -v grep .

חיפוש מילולי גרפ

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

$ grep gnu / usr / share / מילים

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

cygnus
גנו
interregnum
lgnu9d
ליגנום
מגנום
מגנוזון
ספגנום
אגוז כנף

מצד שני, אתה יכול לחפש רק אחר אותה מילה או מחרוזת אותיות ספציפית ולכלול את כל השאר. לשם כך, עליך להוסיף w או -word - regexp לתחביר. במקרה זה, הפקודה לדוגמא נראית כך - $ grep -w gnu / usr / share / מילים .

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

האם מקרה של גרפ רגיש?

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

לדוגמה, פקודת הקלט שלך עשויה להיראות כ- $ grep -i זברה / usr / share / מילים . זה מאפשר לפלט להתאים לכל שילוב של אותיות גדולות וקטנות כאשר הוא מחפש זברה.

מספרי שורות

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

הפקודה המדויקת עשויה להיראות כך: $ grep -n 10000 / etc / services . עם הביצוע, הפלט מספק את כל ההתאמות שהוא מוצא על 10000 קווים. בדוק את המדגם שלהלן:

10423: ndmp 10000 / tcp
10424: ndmp 10000 / udp

קבצים בתיקיות

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

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

קח את השלב הבא עם גרפ

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

כיצד לבצע גרפ ללא שם הקובץ