מדריך זה עורך סיור בכמה מהכלים הטובים ביותר של שורת הפקודה המשמשים לחיפוש מחרוזות או תבניות תואמות בקבצי טקסט. בדרך כלל משתמשים בכלים אלה לצד ביטויים רגילים - מקוצרים כ- REGEX - שהם מחרוזות ייחודיות לתיאור דפוס חיפוש.
בלי להתבטא הרבה יותר, בואו לצלול פנימה.
מגיע מלכתחילה הוא ה כלי השירות grep - הוא ראשי תיבות של הדפס ביטוי רגיל גלובלי, הוא כלי שורת פקודה רב עוצמה שיכול להועיל בעת חיפוש מחרוזת ספציפית או תבנית בקובץ.
גרפ ספינות עם הפצות לינוקס מודרניות כברירת מחדל ונותן לך את הגמישות להחזיר תוצאות חיפוש שונות. בעזרת grep תוכל לבצע מגוון תפקודים עצום כגון:
התחביר לשימוש ב- grep הפקודה די פשוטה:
$ grep תבנית קובץ.
לדוגמה, כדי לחפש את המחרוזת 'לינוקס'בקובץ, נניח, hello.txt תוך התעלמות מרגישות האותיות, הפעל את הפקודה:
$ grep -i לינוקס hello.txt.
כדי לקבל אפשרויות נוספות שתוכל להשתמש בהן grep, פשוט קרא את המאמר שלנו דוגמאות נוספות דוגמאות מתקדמות של פקודות grep.
Sed - קיצור ל עורך זרמים -הוא כלי שימושי נוסף לשורת הפקודה עבור טקסט מניפולציה בקובץ טקסט. Sed מחפש, מסנן ומחליף מחרוזות בקובץ נתון באופן לא אינטראקטיבי.
כברירת מחדל, sed הפקודה מדפיסה את הפלט ל- STDOUT (סטנדרט אאוט), מרמז שתוצאת הביצוע מודפסת במסוף במקום להישמר בקובץ.
הפקודה sed מופעלת כדלקמן:
הפקודה $ sed -OPTIONS [קובץ שיש לערוך]
לדוגמה, להחליף את כל המופעים של 'יוניקס' עם 'לינוקס', הפעל את הפקודה:
$ sed 's/Unix/Linux' hello.txt.
אם ברצונך לנתב את הפלט במקום להדפיס אותו במסוף, השתמש בסימן ההפניה ( > )
כפי שמוצג.
$ sed 's/Unix/Linux' hello.txt> output.txt.
הפלט של הפקודה נשמר ב- output.txt קובץ במקום להדפיס אותו על המסך.
כדי לבדוק אפשרויות נוספות שניתן להשתמש בהן, בדוק שוב את דפי האיש.
$ man sed.
אקנה הוא כלי שורת פקודה מהיר ונייד שנכתב ב- Perl. אקנה נחשב כתחליף ידידותי ל- כלי grep ותוצאות הפלט באופן מושך מבחינה ויזואלית.
אקנה הפקודה מחפשת בקובץ או בספרייה את השורות המכילות את ההתאמה לקריטריוני החיפוש. לאחר מכן הוא מדגיש את המחרוזת התואמת בשורות.
אקנה יש לו יכולת להבחין בין קבצים על סמך סיומות הקבצים שלהם, ובמידה מסוימת, התוכן בקבצים.
תחביר הפקודה Ack:
$ ack [options] דפוס [קובץ ...] $ ack -f [options] [DIRECTORY ...]
לדוגמה, כדי לבדוק את מונח החיפוש לינוקס, לרוץ:
$ ack לינוקס hello.txt.
כלי החיפוש הוא אינטליגנטי למדי ואם המשתמש לא מספק קובץ או ספרייה, הוא מחפש בספרייה הנוכחית ובספריות המשנה את תבנית החיפוש.
בדוגמה למטה, לא סופק קובץ או ספרייה, אך ack זיהה אוטומטית את הקובץ הזמין וחיפש את תבנית ההתאמה שסופקה.
$ ack לינוקס.
להתקין ack על המערכת שלך הפעל את הפקודה:
$ sudo apt להתקין ack-grep [ב- Debian/Ubuntu] $ sudo dnf התקן ack-grep [ב- CentOS/RHEL]
Awk היא שפת סקריפטים מלאה וגם כלי לעיבוד טקסט וניהול נתונים. הוא מחפש קבצים או תוכניות המכילים את תבנית החיפוש. כאשר המחרוזת או התבנית נמצאים, awk נוקט פעולה על הגפרור או הקו ומדפיס את התוצאות על STDOUT.
ה AWK התבנית מוקפת בין הפלטות המתולתלות בעוד שהתוכנית כולה מוקפת במרכאות בודדות.
ניקח את הדוגמא הפשוטה ביותר. נניח שאתה מדפיס את תאריך המערכת שלך כפי שמוצג:
תאריך $.
נניח שאתה רק רוצה להדפיס את הערך הראשון, שהוא היום בשבוע. במקרה זה, צינור הפלט לתוך awk כפי שמוצג:
תאריך $ awk '{print $ 1}'
כדי להציג ערכים עוקבים, הפרד אותם באמצעות פסיק כפי שמוצג:
תאריך $ awk '{print $ 1, $ 2}'
הפקודה למעלה תציג את יום השבוע ואת תאריך החודש.
כדי לקבל אפשרויות נוספות שתוכל להשתמש בהן awk, פשוט קרא את שלנו סדרת הפקודות awk.
ה מחפש כסף הוא כלי חיפוש קוד חוצה פלטפורמות ופתוח מקור הדומה ל- ack אבל עם דגש על מהירות. זה מקל עליך לחפש מחרוזת ספציפית בתוך קבצים בזמן הקצר ביותר האפשרי:
תחביר:
$ ag OPTIONS search_pattern/path/to/file.
לדוגמה, כדי לחפש את המחרוזת 'לינוקס'בקובץ hello.txt להפעיל את הפקודה:
$ ag Linux hello.txt.
לאפשרויות נוספות, בקר בדפי האיש:
$ man ag.
לבסוף, יש לנו את ripgrep כלי שורת פקודה. ריפגרפ הוא כלי חוצה פלטפורמות לחיפוש דפוסי regex. זה הרבה יותר מהיר מכל כלי החיפוש שהוזכרו קודם לכן ומחפש רקורסיבית מדריכים תואמים. מבחינת מהירות וביצועים, אף כלי אחר לא בולט בכך ריפגרפ.
כברירת מחדל, ripgrep ידלג על קבצים בינאריים/קבצים מוסתרים וספריות. כמו כן, שימו לב כי כברירת מחדל היא לא תחפש קבצים שמתעלמים מהם .gitignore/.ignore/.rgignore קבצים.
ריפגרפ מאפשר לך גם לחפש סוגי קבצים ספציפיים. לדוגמה, כדי להגביל את החיפוש שלך ל- Javascript הפעלת קבצים:
$ rg -Tsj.
התחביר לשימוש ב- ripgrep די קל:
$ rg [OPTIONS] דפוס [דרך ...]
לדוגמה. כדי לחפש מופעים של המחרוזת 'לינוקס' בקבצים הממוקמים בתוך הספרייה הנוכחית, הפעל את הפקודה:
$ rg לינוקס.
להתקין ripgrep במערכת שלך הפעל את הפקודות הבאות:
$ sudo apt להתקין ripgrep [מופעל דביאן/אובונטו] $ sudo pacman -S ripgrep [מופעלArch Linux] $ sudo zypper להתקין ripgrep [מופעלOpenSuse] $ sudo dnf התקן ripgrep [מופעלCentOS/RHEL/פדורה]
לאפשרויות נוספות, בקר בדפי האיש:
$ man rg.
אלה הם כמה מהכלים הנפוצים ביותר לשורת הפקודה לחיפוש, סינון ומניפולציה של טקסט ב- Linux. אם יש לך כלים אחרים שלדעתך נשארנו בחוץ, הודע לנו על כך בקטע ההערות.