שיעורי מודול (2/2)
צינורות ומסננים (grep ו-|)
אחת התכונות החזקות ביותר של שורת הפקודה של לינוקס היא היכולת לחבר פקודות שונות כך שהפלט של אחת יהפוך לקלט עבור הבא. טכניקה זו מתבצעת באמצעות צינורות והיא מתאימה בדרך כלל לפקודת סינון הטקסט grep.
טקסט סינון: grep
הפקודה grep (הדפסת ביטוי רגולרי גלובלי) מחפשת מחרוזת טקסט ספציפית בתוך קובץ אחד או יותר ומדפיסה את השורות התואמות:
grep "string" [file_name]אפשרויות שימושיות עבור grep
grep -i "error" server.log: מבצע חיפוש לא רגיש לאותיות רישיות (מתעלם מההבדל בין אותיות רישיות לאותיות קטנות, מוצא "שגיאה", "שגיאה" או "שגיאה").grep -n "connection" server.log: מציג את מספר השורה יחד עם השורה התואמת.grep -v "INFO" server.log: הפוך את החיפוש, מציג רק את השורות שאינן מכילות את מילת המפתח שצוינה.
פקודות שרשור: The Pipeline |
מפעיל הצינור מיוצג על ידי הפס האנכי |. הוא שולח את הפלט הסטנדרטי של הפקודה משמאל ישירות לקלט הסטנדרטי של הפקודה מימין:
[command1] | [command2]לדוגמה, אם קובץ יומן הוא עצום ואתה רוצה לחפש מילה מסוימת מבלי להדפיס את כל הקובץ, אתה יכול לשלב את cat וgrep:
cat logs/server.log | grep ERRORזה קורא את כל הקובץ server.log עם cat, אבל במקום להדפיס אותו למסך, הוא מעביר את הזרם אל grep, אשר מסנן ומציג רק את השורות המכילות את המילה "ERROR".
דוגמאות לשימוש ושגיאות נפוצות
אם תחפש מילה קטנה (למשל "פוסט") בקובץ שמכיל אותה רק באותיות רישיות (למשל "POST"), grep לא יחזיר דבר:
grep "post" logs/access.log
# Output: (no results, search is case-sensitive by default)כדי למצוא את הקו ללא קשר למקרה שלו, השתמש בדגל -i:
grep -i "post" logs/access.log
# Output:
# 127.0.0.1 - - [22/May/2026:10:10:00 +0000] "POST /login HTTP/1.1" 401 234אם הקובץ שצוין לא קיים, grep יחזיר שגיאה:
grep "ERROR" nonexistent_file.log
# Output:
# grep: nonexistent_file.log: No such file or directoryנסה זאת בעצמך
תרגיל 1: חפש שגיאות בקבצי יומן
סנן את הקובץ 'logs/server.log' כדי לחלץ ולהציג רק את השורות המכילות את המילה 'ERROR' (תלוי רישיות).
הצג רמז
השתמש בפקודה grep ואחריה במילה לחיפוש ובנתיב הקובץ.
הפתרון זמין לאחר 3 ניסיונות
תרגיל 2: צינורות ומסננים
השתמש בפקודה cat כדי לקרוא את הקובץ 'logs/server.log' ולהעביר (|) את הפלט שלו לפקודת grep כדי לסנן ולהדפיס רק את השורות המכילות את המילה 'WARNING'.
הצג רמז
חבר cat logs/server.log ל-grep WARNING באמצעות הצינור '|' אוֹפִי.
הפתרון זמין לאחר 3 ניסיונות
תרגיל 3: חיפוש לא תלוי רישיות
חפש את כל השורות המכילות את המילה 'פוסט' (אותיות גדולות או קטנות) בקובץ 'logs/access.log' באמצעות דגל grep המתאים.
הצג רמז
השתמש ב-grep עם האפשרות -i כדי להתעלם מרגישות רישיות.
הפתרון זמין לאחר 3 ניסיונות