נמאס לך משימוש בכלי חיפוש ישנים על המחשב שלך, כמו grep? למה להסתפק? ישנם רבים מהשקפים הדומים ל-grep ב-Windows שיכולים לעזור לך לחפש בדיוק את מה שאתה מחפש.
במדריך זה, תלמד כיצד מכשירים אלו, הדומים ל-grep, מאפשרים לך לחפש דרך קבצים מהיר יותר ולמצוא את המידע שאתה צריך ברגע.
נשמע מעניין? תמשיך לעקוב ותחבר עם כלי חיפוש עוצמתי!
דרישות מוקדמות
מדובר בהדרכות מעשיות. כדי לעקוב, הקפד לוודא שיש לך את הפריטים הבאים:
- A Window machine – This tutorial uses Windows 10 PC, but any version of Windows will suffice.
- PowerShell – מדובר בגרסה 7.2.8. של PowerShell במדריך זה.
- scoop – מדובר בגרסה 0.3.1. של scoop במדריך זה.
מציאת מחרוזות טקסט ספציפיות (findstr) בקבצים
היכולת לזהות מיד מחרוזות טקסט ספציפיות (עם דפוסים מסוימים) בקובץ עוזרת הרבה לתהליך העבודה שלך. אבל איך? פנה לתוך כלי השורת פקודה findstr ב-Windows, המאפשר לך לחפש מחרוזות טקסט ספציפיות בתוך קבצים.
findstr
נהוג לשימוש כמבנה מחליף של grep ב-Windows, מאחר ויש לו פונקציות דומות לפקודת Unix grep
. מהם היתרונות של שימוש ב־findstr
? דוגמה אחת היא שהוא מובנה בכל מערכת ההפעלה (OS) של Windows – אין צורך בתוכנה נוספת.
כדי למצוא מחרוזות מסוימות בקובץ, עקוב אחר השלבים הבאים:
צור קובץ טקסט עם עורך הטקסט המועדף עליך, קרא לו notes.txt, ומלא את התוכן הבא לקובץ.
Hello, world. This is an example of a text file.
I am writing some notes in this file.
Here are some keywords to search for: apple banana cherry.
כעת, פתח את PowerShell כ־מנהל והפעל את הפקודה הבאה כדי למצוא מחרוזות (findstr
) נגד דפוס החיפוש ("תפוח"
) בקובץ notes.txt
.
? ל־findstr יש הרבה פרמטרים שניתן להשתמש בהם כדי להתאים אישית את החיפוש. אך במדריך זה, תשקול כמה מהפרמטרים השווים ביותר בעת חיפוש מחרוזות בקבצים.

? אולי אתה מחפש מחרוזות במספר קבצים. אם כן, ציין את נתיבי הקבצים מופרדים ברווחים, כמו בדוגמה הבאה:
findstr parameters "תבנית" "C:\\נתיב\\ל\\קובץ1.txt" "C:\\נתיב\\ל\\קובץ2.txt"
מציאת מחרוזות התואמות לתבנית ספציפית או ליטרלי.
כאשר אתה עובד עם קבצי הגדרות, מציאת מחרוזות בתבנית מסוימת או מחרוזת ממשית היא חיונית, במיוחד בתהליך האיתור תקלות. ממשק הפקודה /c
מספר לפקודת findstr
לחפש מחרוזות ממשיות המתאימות לתבנית מסוימת, כולל רווחים או תווים מיוחדים.
הוספת הפרמטר /c
לפקודת findstr
מועילה במקרים הבאים, אך לא מוגבלת להם:
- חיפוש אחר מילת מפתח או קבוצת מילים שמופיעות בסדר מסוים.
- חיפוש אחר מחרוזת שמכילה רווחים או תווים מיוחדים.
כדי לראות כיצד הפרמטר /c
פועל בפועל, עקוב אחר השלבים האלה:
1. הרץ את פקודת findstr
למטה כדי לחפש את המחרוזת הממשית (/c
) banana cherry
בקובץ *notes.txt*
.
בפלט למטה, פקודת findstr
מחזירה רק שורות המכילות את המחרוזת המדויקת banana cherry
עם רווח בין שני המילים.
שים לב שהפרמטר /c
רגיש לאותיות, כך שפקודת findstr
מחזירה רק את המחרוזת עם הכתיב האותיות הדיווי שציינת. אם אחת מהמחרוזות בקובץ notes.txt אינה תואמת את התבנית המסוימת, פקודת findstr
מחזירה פלט ריק.

2. לאחר מכן, הוסף את השורה הבאה לקובץ notes.txt, ושמור את השינויים.
עכשיו יש ישנם שני שורות בקובץ notes.txt שלך עם מחרוזת "hello". אחת באותיות קטנות (hello, world.
), ואחת עם אות ראשונה באות גדולה (Hello, world.
).
hello, world.
3. כעת, הפעל את כל הפקודות למטה כדי לחפש את המחרוזת hello, world
, או Hello, world
בקובץ notes.txt
.
שים לב שלמרות שישנם שתי שורות שמכילות את המחרוזת 'hello, world' בקובץ notes.txt, אתה מקבל רק שורה אחת של מחרוזת.
הפרמטר /c
אומר לפקודת findstr
להדפיס שורות שמכילות את מחרוזת 'hello, world' באותיות קטנות או עם האות 'H' באות גדולה.

4. לבסוף, הפעל את פקודת findstr
לחיפוש אחר מחרוזות שמכילות את התבנית hello
בקובץ notes.txt
ובו זמנית מתעלם מהאותיות הגדולות והקטנות (/i
).
חיפושים חשובים כאשר מחפשים לפי רישיון באותיות גדולות או קטנות עובדים כשאתה כבר יודע את האותיות המדויקות של המחרוזת שאתה מחפש. אך אם ברצונך לראות את כל השורות של מחרוזות התואמות תבנית ללא קשר לאותיות הגדולות או הקטנות, הפרמטר /i
יעזור.

מציאת מחרוזות מסוימות בקובצים ובספריות
בנוסף לחיפוש אחר מחרוזות מסוימות בקבצים, פקודת findstr
מאפשרת לך לחפש אחר מחרוזות התואמות בקבצים, תיקיות ותיקיות משנה.
נניח שתרצה למצוא את כל הקבצים בתיקייה שיש בה מילה מסוימת בתוכם. אם כן, השתמש בפרמטר /s
כדי לבצע את העבודה ה"מלוכלכת".
הרץ את הפקודה הבאה כדי לחפש (/s
) בתיקייה הנוכחית ובתתי-תיקיותיה (/s
) את כל הקבצים (*.*
) שמכילים את מחרוזת המילים system
, מתעלמים מהאותיות הקטנות (-i
)
שים לב שהפקודה הזו חיפוש בקבצים שמכילים את מחרוזת המילים system
כמילה שלמה ולא את אלה שהיא חלק ממילים גדולים יותר, כמו systematic או systemize.
הפלט למטה מציג רשימת שמות הקבצים, אחד לכל שורה, עם שם כל קובץ שמכיל את מחרוזת המילים 'system'.

חיפוש מחרוזות באמצעות פקודת Select-String
עד כה, ראינו שהפקודה findstr
עובדת מצוין בחיפוש מחרוזות, אך פקודת ה־Select-String
אינה יכולה להישאר בצד. פקודת זו היא המקבילה של grep
בחלונות ומאפשרת לך לחפש דפוסי טקסט מסוימים בקבצים ובמחרוזות.
פקודת Select-String
מיועדת ליעילות, מאפשרת לך לחפש מהר בכמויות גדולות של טקסט ותומכת ב־ביטויים רגולריים (regexes). כתוצאה מכך, פקודה זו מאפשרת לך לחפש גם דפוסים מורכבים יותר מאשר findstr
.
כדי לראות כיצד פקודת ה־Select-String
פועלת, עקוב אחרי השלבים האלה:
1. פתח את קובץ notes.txt תחילה, הוסף את השורות הבאות ושמור את השינויים.
הוספת שורות אלו היא הכנה להדגמת כיצד פקודת ה־Select-String
עוסקת בהבחנת אותיות בשלבים הבאים.
Apple
APPLE
ApplE
2. לאחר מכן, הפעל את הפקודה הבאה כדי לחפש את המחרוזת apple
בקובץ notes.txt
.
מטה, ישנן שורות מרובות המכילות את המחרוזת 'apple' אך בהבחנה בין רישיות האותיות מכיוון שפקודת ה־Select-String
אינה תלויה ברישיות האותיות. אך הדבר הטוב הוא שניתן לזהות ולאמת בקלות את המחרוזות שהתאימו מאחר והן מודגשות.

? אולי תרצה להשתמש בהתאמת מחרוזת פשוטה במקום התאמת regex. אם כך, הוסף את הפרמטר
-SimpleMatch
, כפי שמוצג למטה, ואל דאגה לתחביר regex ותווים מיוחדים.Select-String 'APPLE' "C:\\myfiles\\notes.txt" -SimpleMatch
3. כעת, הפעל את הפקודה למטה כדי לחפש את APPLE
בקובץ notes.txt
עם הפעלת כיוון בין רישיות האותיות (-CaseSensitive
). הפרמטר -CaseSensitive
מתאים לדיוק בחיפוש.
כפי שתראה למטה, המחרוזת התאימה היחידה נמצאת עם רישיות האותיות המדויקת שציינת (APPLE).

4. לבסוף, הפעל את הפקודה למטה באמצעות regex כדי לחפש את התבנית '\?'
(סימן שאלה) בכל קבצי הטקסט (*.txt
) בתיקייה $PSHOME\en-US
. regex מאפשר חיפוש אחר תבניות מורכבות יותר.
שאלון אם יש שאלה בתוכן הקובץ, הפקודה תחזיר את הנתיב המלא של הקובץ למסוף, כפי שמוצג למטה.

שימוש ב־ripgrep (rg) כמחליף ל־grep ב-Windows
rg הוא כלי שורת פקודה פתוח המיועד לחיפוש בקבצים באמצעות דפוסי regex בצורה מהירה. כמו בכלים אחרים של שורת פקודה, יש ל־rg המון אפשרויות ותכונות להתאמה אישית של החיפושים שלך.
אך להפרד מ־findstr
ו־cmdlet של Select-String
, rg אינו מותקן ב-Windows שלך כברירת מחדל.
כדי להשתמש ב־rg כמחליף ל־grep ב-Windows:
1. הפעל את הפקודה scoop
הבאה כדי להתקין את ripgrep
במערכת שלך. scoop install ripgrep

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

3. הפעל את הפקודה rg
הבאה כדי לחפש את המחרוזת apple
בקובץ notes.txt
.
הפלט מציג כל שורה בקובץ notes.txt שמכילה את המחרוזת apple, כפי שמוצג למטה.
שים לב שהפלט דומה לפלט של cmdlet של Select-String
, אך במקום הדגשה, rg
משנה את צבע המחרוזת ומספר השורה שלה להבדל מהיר.

4. עכשיו, הפעל את הפקודה הבאה באמצעות regex כדי לחפש מחרוזות בקובץ notes.txt
.
התבנית שלמטה משתמשת בגבולות מילים (\b
) ואומרת ל־rg
לחפש שורות של מחרוזות שמכילות מילה שמתחילה באות 's' ומסתיימת באות 'e' (s\w+e
).

סינון חיפושים לפי סוג קובץ מסוים
אולי אתה ממליץ על התיקייה בה נמצא הקובץ שאתה מחפש אך לא על שמו של הקובץ. במקרים כאלה, חיפוש אחר תוכן הקובץ תוך סינון החיפוש לפי סוג הקובץ עשוי להיות האפשרות הטובה ביותר שלך.
סינון החיפוש לפי סוגי קבצים ספציפיים יכול להיות שימושי כאשר אתה רק מעוניין לחפש סוגים מסוימים של קבצים. או כאשר ברצונך לא לכלול סוגים מסוימים של קבצים בחיפוש.
כדי לסנן את החיפוש לסוגי קבצים ספציפיים, האפשרות --type
תעשה את העבודה כך:
1. הריץ את הפקודה rg
הבאה כדי לחפש את המחרוזת apple
בקבצי טקסט (--type txt
) בתיקיית C:\\myfiles
.
האפשרות --type
מקבלת סוג קובץ כארגומנט, שאומר לפקודת rg
לחפש רק קבצים שתואמים לסוג הקובץ המצויין.
הפלט למטה מציג את השורה המכילה את המחרוזת 'apple' ואת שם הקובץ המשויך (notes.txt).

2. לאחר מכן, צור XML בשם notes.xml ומלא את הקוד שלמטה. קובץ XML זה הוא רק הכנה להדגמת איך עובדים חיפושים עם תווי כלליים.
3. כעת, הרץ את הפקודה למציאת מחרוזת apple
בכל (*.
). הפקודה זו מחפשת רק קבצים בסוגי txt
ו-xml
כפי שצויין ב--g
.
בברירת מחדל, rg
ישמור על התאמה מדויקת לאותיות רישון. כתוצאה מכך, הפלט יציג רק את השורה המכילה את מחרוזת 'apple' בדיוק ואת הקובץ המשוייך.

4. לבסוף, הרץ את הפקודה הבאה, כפי שעשית בשלב השלישי, כדי לחפש את מחרוזת apple
בכל הקבצים (*.
) שיש להם סיומת txt
או xml
. אך הפעם, הוסף את האפשרות -i
, שאומרת ל-rg
להתעלם מהתאמות האותיות.

Conclusion
במהלך המדריך הזה, למדת יתרונות רבים ב-Windows של פקודות חיפוש שקולות ושל ביטויים רגולריים. פתחת את היכולת להשתמש באפשרויות ובפרמטרים השונים של הפקודות הללו להתאמה אישית וסינון עבור סוגי קבצים ספציפיים.
בנקודה זו, אתה אמור להרגיש ביטחון בתיקונים של בעיות, זיהוי בעיות, וחיפוש בקבצי טקסט גדולים.
עכשיו, למה לא לשים את הכישורים החדשים שלך למבחן ולתרגל עם regexes ולהתאים אישית את החיפושים שלך?
Source:
https://adamtheautomator.com/grep-equivalents-in-windows/