םיליגר םייוטיב תועצמאב ליגר טסקט ינותנ שופיחל רתויב םיבוטה CLI -ה ילכ 6


.שופיח סופד רואיתל תוידוחיי תוזורחמ םהש - REGEX -כ םירצוקמ - םיירלוגר םייוטיב דצל ללכ ךרדב םישמשמ הלא םילכ .טסקט יצבקב תומאות תוינבת וא תוזורחמ שופיחל םישמשמה רתויב םיבוטה הדוקפה תרוש ילכב

.המינפ לולצנו ואוב ,רתוי הברה טבלתהל ילב

Grep דוקיפ .1

.ץבוקב תינבת וא תיפיצפס תזורחמ שופיח תעב ישומיש רשא המצוע בר הדוקפ תרוש ילכ אוה ,Global Regular Expression Print לש תובית ישאר אוה - grep תורישה ילכ אוה הליחתכלמ

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

    :טושפ יד אוה grep תדוקפב שומישל ריבחתה

    $ grep pattern FILE
    

    :הדוקפה תא לעפה ,תויתואל תושיגרמ תומלעתה ךות hello.txt ,רומא ,ץבוקב 'סקוניל' תזורחמה תא שפחל ידכ ,המגודל

    $ grep -i Linux hello.txt
    

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

    דס דוקיפ .2

    .יביטקארטניא אל ןפואב ןותנ ץבוקב תוזורחמ ףילחמו ןנסמ ,שפחמ Sed .טסקט ץבוקב היצלופינמ טסקט

    .ץבוקב רמשיהל םוקמב לנימרטב תספדומ עוציבה תאצות יכ זמרמש המ ,STDOUT (Standard Out) -ל טלפה תא הסיפדמ sed תדוקפ ,לדחמ תרירבכ

    :אבה ןפואב תלעפומ Sed הדוקפה

    $ sed -OPTIONS command [ file to be edited ]
    

    :הדוקפה תא לעפה ,' סקוניל'ב 'סקינוי' לש םיעפומה לכ תא ףילחהל ידכ ,המגודל

    $ sed 's/Unix/Linux' hello.txt
    

    .גצומש יפכ (>) הינפהה ןמיסב שמתשה ,ףוסמב ותוא סיפדהל םוקמב טלפה תא תונפהל ךנוצרב םא

    $ sed 's/Unix/Linux' hello.txt > output.txt
    

    .ךסמה לע ספדומ תויהל םוקמב output.txt ץבוקב רמשנ הדוקפה טלפ

    .שיאה יפד תא בוש קודב ,שמתשהל ןתינ ןהב תופסונ תויורשפא קודבל ידכ

    $ man sed
    

    Ack דוקיפ .3

    Ack לרפב בתכנש דיינו ריהמ הדוקפ תרוש ילכ אוה. Ack תנכותל יתודידי ףילחתל בשחנ grep תילאוזיו הניחבמ ךשומ ןפואב הקופתה ירצותו.


    .תורושב תמאותה תזורחמה תא שיגדמ אוה ןכמ רחאל .שופיחה ינוירטירקל המאתהה תא תוליכמה תורושה תא הירפסב וא ץבוקב תשפחמ Ack תדוקפ

    :Ack תדוקפ ריבחת

    $ ack [options] PATTERN [FILE...]
    $ ack -f [options] [DIRECTORY...]
    

    :לעפה ,סקוניל שופיחה חנומ תא קודבל ידכ ,המגודל

    $ ack Linux hello.txt
    

    .הנשמה תוירפסבו תיחכונה הירפסב שופיחה סופד תא שפחמ אוה ,הירפס וא ץבוק קפסמ אל שמתשמה םאו ,יטנגילטניא יד אוה שופיחה ילכ

    .קפוסש המאתהה סופד רחא שפיחו ןימזה ץבוקה תא יטמוטוא ןפואב ההיז ack ךא ,היירפס וא ץבוק קפוס אל ןלהלש המגודב

    $ ack Linux
    

    :הדוקפה תא לעפה ,ךלש תכרעמב ack ןיקתהל ידכ

    $ sudo apt install ack-grep    [On Debian/Ubuntu]
    $ sudo dnf install ack-grep    [On CentOS/RHEL]
    

    Awk דוקיפ .4

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

    .תודדוב תואכרמב תפקומ הלוכ תינכותה וליאו םילתלותמ םיירגוס ןיב ףקומ AWK -ה סופד

    :גצומכ ךלש תכרעמה ךיראת תא סיפדמ התאש חיננ .רתויב הטושפה המגודה תא חקינ

    $ date
    

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

    $ date | awk '{print $1}'
    

    :גצומכ קיספ תועצמאב םתוא דרפה ,םיבקוע םיכרע גיצהל ידכ

    $ date | awk '{print $1,$2}'
    

    .שדוחה ךיראת תאו עובשה םוי תא גיצת הלעמלש הדוקפה

    .ונלש awk תודוקפה תרדס תא ארק טושפ ,awk םע ןהב שמתשהל לכותש תופסונ תויורשפא לבקל ידכ

    ףסכ שפחמ .5

    :רתויב רצקה ןמזב םיצבק ךותב תיפיצפס תזורחמ שפחל ךילע לקמ הז .תוריהמ לע שגד םע ךא ack -ל המודה תומרופטלפו חותפ דוק שופיחל ילכ אוה ףוסכה שפחמה

    :ריבחת

    $ ag OPTIONS search_pattern /path/to/file
    

    :הדוקפה תא לעפה hello.txt ץבוקב 'סקוניל' תזורחמה תא שפחל ידכ ,המגודל

    $ ag Linux hello.txt
    

    :שיאה יפדב רקב תופסונ תויורשפאל

    $ man ag
    

    6. Ripgrep

    .Ripgrep -מ טלוב וניא רחא ילכ םוש ,םיעוציבהו תוריהמה תניחבמ .םימאות םיסופד רחא תוירפסב תוירפסב שפחמו ןכל םדוק ורכזוהש שופיחה ילכ לכמ ריהמ רתוי הברה הז .regex יסופד שופיחל תומרופטלפ הצוח יל

    .gitignore/.ignore/.rgignore. יצבקמ םימלעתמש םיצבק שפחי אל אוה לדחמ תרירבכש בל ומיש ,ןכ ומכ .תוירפסו םירתסומ םיצבק/םייראניב םיצבק לע גלדת ripgrep ,לדחמ תרירבכ

    Ripgrep יצבקל שופיחה תא ליבגהל ידכ ,המגודל .םייפיצפס םיצבק יגוס שפחל םג ךל רשפאמ Javascript םילעפומה:

    $ rg -Tsj
    

    :לק יד אוה ripgrep -ב שומישל ריבחתה

    $ rg [OPTIONS] PATTERN [PATH...]
    

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

    $ rg Linux
    

    :תואבה תודוקפה תא לעפה ,ךלש תכרעמב ripgrep ןיקתהל ידכ

    $ sudo apt install ripgrep      [On Debian/Ubuntu]
    $ sudo pacman -S ripgrep        [On Arch Linux]
    $ sudo zypper install ripgrep   [On OpenSuse]
    $ sudo dnf install ripgrep      [On CentOS/RHEL/Fedora]
    

    :שיאה יפדב רקב תופסונ תויורשפאל

    $ man rg
    

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