27Jun

מדריך למתחילים מעטפת Scripting 3: פקודות בסיסיות יותר &שרשראות

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

כמה פקודות שימושיות בסיסיות

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

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

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

echo - פקודה זו פשוט מדפיסה( מציג) את כל הטענה שלה על שורת הפקודה כמו

פלט הד עם רווחים

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

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

cat - פקודה זו מציגה את התוכן של קבצי טקסט כפלט.

cat file_to_be_read

נניח שאנו יוצרים קובץ טקסט זה ב- nano:

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

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

קובץ תבנית grep

אני מבטיח לך, grep יכול לעשות יותר, אבל עכשיו בואו מקל על דברים קלים יותר.

הפניה מחדש של פלט

כדי לנתב מחדש את הפלט של פקודה לקובץ, אנו עושים שימוש באופי מיוחד, הסימן הגדול( gt;).

בואו לשנות את הרשימה שלנו, בסדר?הזן את הפקודה הבאה:

echo pepperoni & gt;List

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

שים לב גם שהתכנים הקודמים של "רשימה" הוסרו.נסה זאת שוב:

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

הד פלפלים צהובים & gt; & gt;רשימה

קל!נשתמש בפקודה זו כדי ליצור רשימה גדולה יותר, נכון?

הנה אנחנו הולכים.אני חושב שאתה יכול לראות למה כל כך הרבה Geeks להשתמש בשורת הפקודה כדי לעשות מטלות רשימות וכדומה, אבל זה אפילו יותר טוב.

בואו ניקח את הפלט של פקודה והכניס אותה לקובץ:

ls -al / & gt;~ / rootlist

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

צנרת, או שרשור

צנרת נקראת כך משום שהיא משתמשת בצינור,( |; משותף עם \ מפתח ברוב המקשים).בעיקרו של דבר, זה לוקח את הפלט של פקודה אחת ישירות מזינה אותו אחרת.ניתן ליצור שרשראות ארוכות של פקודות כדי לקבל פלט הרצוי מאוד ספציפי בדרך זו, וזה מאוד נוח עבור פקודות כמו grep.

זה פועל הרבה כמו "& gt;" למעט זה יכול להיות קשור מספר פעמים ואת האפקט שלה הוא כללי יותר בכך שהוא לא צריך לעבור קובץ טקסט.

כפי שניתן לראות, grep הוא תלוי-רישיות.ניתן להשתמש בדגל "i" כדי לגרום לו להתעלם מהמקרה.

ניתוב מחדש של תשומות

ניתן גם לקחת תשומות מקבצים עבור פקודות באמצעות הסמל פחות( & lt;).חתול

& lt;רשימה

"זה לא שונה מוויכוח", אפשר לומר.ובכן, אתה תהיה נכון במקרה זה.איפה ניתוב מחדש של קלט באמת שימושי הוא שרשור פקודות יחד.

נניח שאנחנו רוצים לסנן כל מילה שיש לה "pep" ממנה מתוך הרשימה הנוכחית "רשימה" שלנו לתוך קובץ חדש בשם "תיקונים".

grep pep & lt;רשימה & gt;תיקונים

בואו לעשות שוב את הפקודה הזו, ולהוסיף קצת מיון.

grep pep & lt;רשימה |מיון & gt;תיקונים

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

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

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

סקריפט פשוט

בואו ליצור סקריפט שיש לו את הטופס הבא:

סקריפט searchterm listfile

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

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

ו, אנחנו יכולים ליצור רשימה של מה כאן, ולאחר מכן להפעיל את התסריט.

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

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

  • tsort - פונקציית מיון טופולוגית מתקדמת יותר
  • tr - מאפשרת לך למפות תווים ספציפיים לתווים אחרים, ולתעתק ביניהם.
  • Uniq - מסיר כל unDq לא ייחודי( לקרוא: כפולות)
  • awk - עיבוד טקסט מתקדם באמת שפה / פונקציה שניתן להשתמש בהם כדי להפריד שדות בשמות קבצים
  • לחתוך, להדביק / להצטרף פקודות שימושי לבידוד שדות מקבצי טקסט והוספתנתונים חדשים לתוך עמודות
  • נראה - חיפושים כמו grep עושה, אבל משתמש בקובץ המילון( זה יכול להיות המשתמש שצוין) עבור בדיקת
  • wc - מאפשר לך לקבל ספירת מילים, ספירת שורות, ספירת תווים, ועוד

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

מה הם חלק מהסקריפטים האהובים עליך?יש לך סקריפטים מיוחדים לשימוש עבור קבצים מבוססי טקסט?שתף את מה שאתה יודע את ההערות!