מדריך יוניקס (Unix) מספר 4 - איך להשתמש בפעולות חיפוש בקבצים (grep, wc)
מדריך זה יסביר כיצד להשתמש בפקודות הסינון השימושיות grep ו wc שעוזרות לנו בחיפוש,סינון וספירת תכנים בקבצים.
What You'll Need
- יוניקס
- ספירת מילים
- ספירת תווים
- ספירת שורות
- חיפוש בקובץ
- grep
- unix
Steps
- 1
Step 1
כל קובץ טקסט בנוי מתווים,מילים ושורות. ניתן לספור את התווים, המילים והשורות בעזרת פקודת wc (ספירת מילים - Word Count). בכדי להפעיל את הפקודה יש לרשום : wc option filename לדוגמא, הפקודה wc somefile תחזיר בשורה (משמאל לימין)את מספר השורות,מספר המילים ומספר התווים ואת שם הקובץ מקובץ somefile. - 2
Step 2
ניתן לבקש את מספר התווים,המילים או השורות באופן ספציפי בעזרת האופציות הבאות: wc - l file יחזיר את מספר השורות. wc -w file יחזיר את מספר המילים. wc -c file יחזיר את מספר התווים. -
- 3
Step 3
בכדי לחפש מילה או תווים בקובץ טקסט, אפשר להשתמש בפקודת הgrep. grep היא פקודה סטנדרטית ביוניקס ומשתמשים בה המון. בכדי להשתמש בgrep נרשום : grep ולאחר מכן את המילה אותה אנו מחפשים ולאחר מכן את שם הקובץ. לדוגמא: grep la somefile וכפלט נקבל את כל השורות שבהן מופיעה המילה "la" בקובץ somefile. שימו לב שgrep מבדילה בין אותיות קטנות וגדולות (Upper and lower cases) . - 4
Step 4
בכדי למנוע התייחסות לאותיות גדולות אוקטנות בפקודת grep, נשתמש באופציה הבאה: grep -i לדוגמא: grep -i La somefile. במידה ולא היינו משתמשים באופציה i- היינו מקבלים הודעת שגיאה שאין התאמות אך מכיוון שהשתמשנו, הפקודה לא תבדיל בין אותיות גדולות וקטנות. - 5
Step 5
אפשר להשתמש באופציות שונות בgrep בהתאם לצרכים שלנו: grep phrase -v file יחזיר את כל מה השורות השונות מphrase. grep phrase -n file יחזיר את השורות בהן נמצא הphrase עם מספר השורה. grep phrase -c file יחזיר את סך כל השורות בהן נמצאה המילה או הביטוי. - 6
Step 6
grep מאפשר חיפושים מתקדמים יותר כמו : שורות המתחילות ב... או שורות הנגמרות ב... בכדי לקבל את כל השורות בקובץ המתחילות באות ספציפית נשתמש בסימן ^ לפני האות (יש צורך לשים את הביטוי שמחפשים בגרשיים) לדוגמא: grep '^h' funfile יחזיר את כל השורות בקובץ funfile המתחילות באות h. - 7
Step 7
אם נרצה לקבל את השורות הנגמרות באות כלשהי נשתמש בסימן $ לאחר האות. לדוגמא: grep 'e$' funfile יחזיר את כל השורות שנגמרות באות e. - 8
Step 8
מציאת שורה המתחילה או נגמרת באות מסוימת זו משימה מאוד ספציפית. הפקודה grep מאפשרת לנו למצוא את כל השורות בקובץ המתחילות במבחר מסויים של אותיות או מספרים. לדוגמא, בכדי להחזיר את כל השורות בקובץ המתחילות באותיות a עד z(שימו לב לכך שאלו אותיות קטנות) נכתוב: grep '^[a-z]' funfile. נוכל אפילו לשלב ולקבל את כל השורות המתחילות באותיות הקטנות a עד z או באותיות הגדולות A-Z ע"י שימוש בפקודה: grep '^[a-zA-Z]' funfile - 9
Step 9
כנ"ל גם לגביי מספרים. דוגמא: grep '^[1-9]' funfile תחזיר את כל השורות שמתחילות במספרים 1 עד 9.