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

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

סקירה כללית של פיקוד החיתוך

cut משתמש בתחביר הבסיסי הבא:

גזירה 

אתה יכול גם לצרף אותו עם פקודות אחרות באופן הבא:

echo "מחרוזת_תווים" | גזירה 

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

אוֹפְּצִיָה תיאור
חתכים לפי מיקום בתים
חתכים לפי מיקום הדמות
מחלץ מחרוזת באמצעות המפריד שצוין עם אפשרות השדה (-f).
מחלצים לפי שדה מוגדר
תמציות עבור תוחמים בלבד
--מַשׁלִים הדפס את הפלט למעט השדה שציינת
--מפריד פלט החלף את המפריד הקיים במפריד שציינת

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

instagram viewer

1. חלץ תווים ספציפיים ממחרוזת

להשתמש ב אפשרות להביא מחרוזות של תווים לפי ספירת הבתים שלהם, באופן הבא:

הד "שלום עולם" | חתך -ב 1,2,3,5,8,9

תְפוּקָה:

Heloor

אתה יכול גם לציין נתיב קובץ במקום מחרוזת:

cut -b 1,2,3,4,5 filename.txt

או שאתה יכול לחלץ תווים לפי מיקומם בטקסט. להשתמש ב אפשרות ואחריה רצף/סדר התווים שאתה צריך להביא באופן הבא:

הד "שלום עולם" | cut -c 1,2,3,5,6,8,10,11

תְפוּקָה:

שלום זקן

באופן דומה, כדי להביא שדות או עמודות ממסד נתונים של קובץ שטוח, השתמש בפקודה cut עם ה- אפשרות דגל:

cut -f 3 database.txt

2. חתוך טווח של בתים או תווים

אתה יכול גם להשתמש ב דגל עם הפקודה cut כדי לחלץ ולהדפיס טווחים מרובים של בתים באופן הבא:

cut -b 1-7,16-23 database.txt

אתה יכול להגדיר את הטווח לאחזור תווים באמצעות ה דגל באופן הבא:

cut -c 1-7,16-23 database.txt

3. חלץ טקסט ממיקום התחלה או סיום

להשתמש ב -cn- אפשרות לחלץ טקסט מהתו n ואילך עד סוף השורה, איפה נ הוא האינדקס של תו במחרוזת.

לדוגמה, כדי לחלץ את המחרוזת החל מהתו השישי עד סוף השורה:

חתוך -c6- database.txt

או השתמש בפקודה הבאה כדי לאחזר מההתחלה ועד האחרונה M תווים מהקובץ:

cut -c-8 database.txt

4. גזור שדות מרובים מקובץ

אתה יכול גם להדפיס שדות מרובים מקובץ באמצעות ה דֶגֶל.

cut -f 1,2 database.txt

תְפוּקָה:

שם גיל 
ג'ון 20
ליסה 24
ג'ק 18
ברוס 23
ננסי 19

5. חלץ טקסט באמצעות מפריד

אתה יכול להשתמש ב דגל כדי לציין את המפריד עם אוֹפְּצִיָה. המפריד מציין את התו המשמש להפרדת שדות בקובץ טקסט.

לדוגמה, כדי לחלץ את העמודה הראשונה של /etc/passwd קובץ, השתמש בנקודתיים (:) כמפריד:

cut -d ':' -f 1 /etc/passwd

באופן דומה, ערך המפריד בזרם הטקסט הנתון הוא רווח בודד:

הד "1% מה-1%" | חתך -ד ' ' -f 2,3

תְפוּקָה:

1% מתוך

6. שנה את מפריד פלט לתצוגה

ה --מפריד פלט דגל מוסיף גמישות לפלט הפקודה לחתוך. לדוגמה, אתה יכול להשתמש בדגל כדי להציג את הפלט בשורה נפרדת באמצעות $'\n' ערך (שורה חדשה), כדלקמן:

grep alice /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'\⁠n'

תְפוּקָה:

אליס
אליס
/bin/sh

יתר על כן, אתה יכול גם להחליף מפריד של קובץ קלט במפריד לבחירתך בפלט על ידי שימוש ב- --מפריד פלט דֶגֶל:

grep root /etc/passwd | cut -d ':' -f 1,6,7 --output-delimiter=@

תְפוּקָה:

root@/root@/bin/bash
nm-openvpn@/var/lib/openvpn/chroot@/usr/sbin/nologin

7. גזור שדות רק כאשר קו מכיל את המפריד

להשתמש ב דגל כדי לחלץ שדות רק כאשר השורות מכילות תוחם. לדוגמה, הפקודה הבאה לא תביא את השדה -f 1 אלא אם כן יש לו מפריד רווח:

הד "HelloWorld" | לחתוך -d " " -f 1 -s

להיפך, הפקודה המוזכרת להלן תיצור פלט מכיוון שהמחרוזת מכילה את המפריד שצוין:

הד "שלום עולם" | לחתוך -d " " -f 1 -s

תְפוּקָה:

שלום

באופן דומה, אתה יכול גם להשתמש בכל תו אחר כמפריד:

הד "שלום: עולם" | לחתוך -d ":" -f 2 -s

תְפוּקָה:

עוֹלָם

8. השלים את פלט הפקודה

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

grep "root" /etc/passwd | cut -d ':' --השלמה -s -f 5

תְפוּקָה:

root: x: 0:0:/root:/bin/bash

באופן דומה, בדוגמה למטה, ה -f 1 הפרמטר חייב להופיע שלום טקסט עם זאת, בשל ה --מַשׁלִים אפשרות, הוא מדפיס רק את השאר.

הד "שלום לכל העולם" | cut -d " " -f 1 --השלמה

תְפוּקָה:

לכל העולם

החלק הטוב ביותר הוא שאתה יכול לשלב את פקודת החיתוך עם הפלט הסטנדרטי של פקודות Linux/Unix אחרות.

sed הוא כלי לעריכת טקסט כזה שתוכל להשתמש בו כדי למחוק, להוסיף ולהחליף את הטקסט שלך. אתה יכול בקלות להעביר את הפלט שלו לפקודת החיתוך.

בדוגמה למטה, הפקודה grep הפלט מועבר אל כלי השירות sed שמחליף את המעי הגס (:) במקף (-) ולאחר מכן, cut מציג את השדות 1, 6 ו-7 באופן הבא:

grep alice /etc/passwd | sed 's/:/-/g' | חתך -ד ' ' -f 1,5,7

תְפוּקָה:

alice-x-1005-1008-Alice-/home/new/alice-/bin/sh

עבודה עם טקסט בלינוקס באמצעות cut

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

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

5 פקודות מניפולציית הטקסט השימושיות ביותר של לינוקס

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

קרא הבא

לַחֲלוֹקצִיוּץאימייל
נושאים קשורים
  • לינוקס
  • פקודות לינוקס
  • לינוקס יסודי
  • Linux Bash Shell
על הסופר
רומאיסה ניאזי (10 מאמרים שפורסמו)

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

עוד מ-Rumaisa Niazi

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחץ כאן כדי להירשם