כיצד לדלג על השורה הראשונה של קובץ באמצעות 'awk'

How Skip First Line File Using Awk



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

צור קובץ טקסט

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







אבטחת סייבר עם פול טרונקון, קרל אלבינג

שורת הפקודה קונג פו ג'ייסון תותח

דוכן שורות הפקודה של לינוקס לינוקס

באש בצעדים קלים מייק מקגראת '

יוניקס בצעדים קלים מייק מקגראת '

דוגמה 1: דלג על השורה הראשונה של קובץ באמצעות NR והמפעיל '>'

המשתנה NR מציין את מספר הרשומות בקובץ. הפקודה הבאה 'awk' משתמשת במשתנה NR כדי לדלג על השורה הראשונה בקובץ. הערך של NR הוא 1 עבור השורה הראשונה. הפקודה הבאה תדפיס שורות שעבורן ערך ה- NR גדול מ -1.



$חתולbooklist.txt

$awk '(NO> 1)'booklist.txt

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







דוגמה 2: דלג על השורה הראשונה באמצעות NR ובאופרטור '! ='

הפקודה הבאה של awk דומה לזו שבדוגמה הקודמת. עם זאת, אופרטור ההשוואה '! =' משמש כאן במקום '>'.

$חתולbooklist.txt

$awk 'NR! = 1'booklist.txt

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



דוגמה 3: דלג על השורה הראשונה של קובץ באמצעות משפט מותנה

הפקודה הבאה 'awk' תדפיס את שורות הקובץ אם הצהרת if היא נכונה. כאן, הצהרת ה- if תהיה נכונה רק כאשר ערך ה- NR אינו שווה ל -1.

$חתולbooklist.txt

$awk '{if (NR! = 1) {print}}'booklist.txt

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

דוגמה 4: הדפס את שמות הספרים מהקובץ אך דלג על השורה הראשונה

שתי פקודות 'awk' משמשות בדוגמה זו להדפסת כל שמות הספרים למעט הראשון. הפקודה `awk` תקרא את העמודה הראשונה מהקובץ בהתבסס על מפריד השדות ( t) ותשלח את הפלט לפקודה` awk` השנייה. הפקודה השנייה של awk תדפיס את הפלט הרצוי.

$חתולbooklist.txt

$awk -F ' t' '{הדפס $ 1}'booklist.txt| awk 'NR! = הדפסה אחת'

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

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

האפשרות '-F', משתנה NR ופונקציית printf משמשים בפקודה 'awk' הבאה ליצירת פלט מעוצב לאחר דילוג על השורה הראשונה. הפקודה תחלק את תוכן הקובץ לעמודות המבוססות על t, ו- printf ידפיס את העמודה הראשונה והשנייה כאשר ערך ה- NR הוא 2 לפחות.

$חתולbooklist.txt

$awk -F 'לא' 'NR> = 2 {printf' %30s %20s n ', $ 1, $ 2}'booklist.txt

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

דוגמה 6: הדפס את שמות הספרים לאחר דילוג על השורה הראשונה באמצעות NR ו- NF

הפקודה 'awk' הבאה משתמשת באפשרות '-F' וב- NR ו- NF כדי להדפיס את שמות הספרים לאחר דילוג על הספר הראשון. האפשרות '-F' משמשת להפרדת התוכן של בסיס הקבצים ב- t. NR משמש לדילוג על השורה הראשונה ו- NF משמש להדפסת העמודה הראשונה בלבד.

$חתולbooklist.txt

$awk -F 'לא' 'NR> 1 && NF = 1'booklist.txt

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

דוגמה 7: הדפס את שמות המחברים המעוצבים לאחר דילוג על השורה הראשונה

הפקודה הבאה 'awk' משתמשת באפשרות '-F' ובהצהרה מותנית להדפסת שמות המחברים לאחר דילוג על השורה הראשונה. כאן, ערך NR משמש במצב if. כאן, שם המחבר: n n יודפס כשורה הראשונה במקום התוכן מהשורה הראשונה. שמות המחבר מהקובץ יודפסו לערכים האחרים של NR.

$חתולbooklist.txt

$awk -F 'לא' '{if (NR == 1) printf' n שם המחבר: n n '; אחר הדפס '%s n', $ 2} 'booklist.txt

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

סיכום

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