פקודת Grep: כלי רב עוצמה למציאת טקסט ממסוף

פקודת גרפ

כמעט כל מי שיש לו מחשב או שעובד עם אחד כזה יידע את קיצור המקשים Ctrl + F כדי למצוא טקסט. ה- "F" מגיע מ- "Find", "to find" באנגלית וניתן להשתמש בו, למשל, למציאת טקסט בדף אינטרנט. קיצור דרך זה זמין גם ביישומים רבים, ישנן תוכניות המשתמשות ב- "B" עבור "חיפוש", אך קיצורי דרך אלה פועלים רק אם אנו נמצאים בתוך היישום ועם הקובץ פתוח. בלינוקס יש לנו כלים חזקים מאוד שנוכל להפעיל מהטרמינל ואם נרצה מצא כל טקסט שנמצא בצוות שלנו נשתמש בפקודה grep.

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

עם grep אנו נמצא כל טקסט בכל קובץ

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

  • -i: לא יבדיל בין אותיות קטנות וקטנות.
  • -w: מכריח אותו למצוא רק מילים ספציפיות.
  • -v: בוחר את השורות שאינן תואמות.
  • -n: מציג את מספר השורה עם המילים המבוקשות.
  • -h: מסיר את הקידומת משם קובץ יוניקס בפלט.
  • -r: מחפש בספריות רקורסיבית.
  • -R: כמו -r אך עקוב אחר כל הקישורים.
  • -l: מציג רק שמות קבצים עם שורות נבחרות.
  • -c- מציג ספירה אחת בלבד לכל קובץ של השורות שנבחרו.
  • -צֶבַע: מציג את הדפוסים התואמים בצבעים.

בתמונה שבראש המאמר שלך חיפשתי את המילה "תמונות" בקובץ "830. desktop" שנמצא באותו נתיב. כפי שאתה יכול לראות, כתבתי:

grep Imágenes /home/pablinux/Documentos/830.desktop

זכור כי במאמר זה נכתוב דוגמאות שיש לשנות בהתאם להעדפות החיפוש שלנו. כשאנחנו אומרים "קובץ", "Word" וכו ', נתייחס לקובץ עם הנתיב שלו. אם רק הייתי כותב "grep Images 830. desktop" הייתי מקבל הודעה שאומרת שהקובץ לא קיים. או כך זה יהיה אלא אם כן הקובץ היה בספריה הבסיסית.

דוגמאות אחרות יהיו:

  • grep -i images /home/pablinux/Documentos/830.desktop, שם "תמונות" תהיה המילה שאנחנו רוצים למצוא וכל השאר הקובץ עם הנתיב שלו. דוגמה זו תחפש "תמונות" בקובץ "830. desktop" לא רגיש למקרה.
  • grep -R תמונות: הוא יחפש בכל שורות הספרייה ובכל ספריות המשנה שלה בהן נמצאת המילה "תמונות".
  • grep -c דוגמה test.txt: זה יחפש אותנו ויראה את מספר הפעמים הכולל ש"דוגמא "מופיעה בקובץ שנקרא" test.txt.

עם grep אנחנו יכולים גם לחפש קבצים

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

grep 830.desktop

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

כיצד לבצע חיפושים רקורסיביים

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

grep -r Pablinux /home/

נו טוב:

grep -R Pablinux /home/

נראה את התוצאות עבור "Pablinux" בשורה נפרדת שקדמה לשם הקובץ בו הוא נמצא. אם אנחנו לא רוצים לראות את שמות הקבצים בפלט הנתונים נשתמש באפשרות -h (מתוך "הסתר"; הסתר):

grep -h -R Pablinux /home/

אנו יכולים להצטרף לאפשרויות ולכתוב "-הר" ללא הצעות המחיר.

כיצד לבצע חיפושים במילים מדויקות

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

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

הפקודה שלעיל תחפש "יערות", תוך התעלמות מסיירים, בקובץ "vacation.txt" בנתיב המצוין. אם מה שאנחנו רוצים זה לחפש שתי מילים שונות נשתמש בפקודה egrep:

egrep -w bosques|plantas /ruta/del/archivo

דע כמה פעמים מופיעה מילה בקובץ

grep זה גם מסוגל ספור כמה פעמים מופיעה מילה בתיק. לשם כך נשתמש באפשרות -c:

grep -c prueba /ruta/al/archivo

הוספת האפשרות -n מה שנראה הוא מספר השורה בה מופיעה המילה.

בדיקות הפוך

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

grep -v la ruta/al/archivo

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

גישה למידע מערכת עם grep

דגם מחשב

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

cat /proc/cpuinfo | grep -i 'Model'

נו טוב:

grep -i 'Model' /proc/cpuinfo

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

dmesg | egrep '(s|h)d[a-z]'

כיצד לרשום רק שמות קבצים תואמים

אם אנו רוצים לראות רשימה עם רק שמות הקבצים התואמים לחיפוש, נשתמש באפשרות -l כפי שמוצג להלן:

grep -l 'main' *.c

ואם נרצה לראות את המילה בצבעים נכתוב:

grep --color palabra /ruta/al/archivo

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


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   נורדרי דיג'ו

    הלו!
    כאשר אתה אומר ש- Grep משמש גם לחיפוש קבצים, אני לא חושב שזה נכון כי אם אתה מריץ grep EXPRESSION ולא מעביר את הקובץ אליו, הוא ימתין להזנת הנתונים מהקלט הסטנדרטי.
    על פי דף המדריך:
    grep מחפש בקבצי הקלט שצוינו אחר שורות המכילות התאמה לדפוס הנתון. אם לא צוינו קבצים, או אם הקובץ "-" ניתן, grep מחפש קלט רגיל.
    אז אתה יכול להשתמש בו בצינורות, כמו זה שאתה מנתח את הפלט של / proc / cpuinfo על ידי העברת הפלט של פקודה זו כקלט ל- grep, אתה יכול לבצע את החיפוש.
    ברכות

  2.   אנה דיג'ו

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