שרשור כמה פקודות
חלק מהיחידה יסודות במסלול ה-Terminal של Coddy. שיעור 45 מתוך 82.
אתה לא מוגבל לחיבור של שתי פקודות בלבד. אפשר לשרשר בצינורות כמה פקודות שצריך, כאשר כל אחת מעבדת את הפלט של הפקודה הקודמת.
פשוט הוסף עוד סמלי | כדי להאריך את הצינור:
cat data.txt | sort | head -5הפקודה קוראת את הקובץ, ממיינת את כל השורות בסדר אלפביתי ואז מציגה רק את 5 התוצאות הראשונות. הנתונים זורמים משמאל לימין דרך כל פקודה לפי הסדר.
הנה דוגמה מעשית שמוצאת ערכים ייחודיים ממוינים:
cat names.txt | sort | uniqתחילה ממיינים את תוכן הקובץ (וכך מקבצים יחד כפילויות), ואז uniq מסיר שורות כפולות רצופות. הסדר חשוב כאן: uniq מסיר רק כפילויות סמוכות, ולכן המיון חייב להתבצע תחילה.
אפשר להוסיף עוד שלבים. כדי לספור כמה שמות ייחודיים קיימים:
cat names.txt | sort | uniq | wc -lכל צינור מוסיף שלב טרנספורמציה נוסף. כשבונים צינורות ארוכים יותר, חשבו מה כל פקודה צריכה לקבל כקלט ומה היא מפיקה כפלט. פורמט הפלט של פקודה אחת צריך להתאים כקלט לפקודה הבאה.
אתגר
קלהקובץ visitors.txt מכיל רשימה של שמות מבקרים עם כפילויות. השתמשו בצינור עם ארבע פקודות כדי לספור כמה מבקרים ייחודיים יש.
הריצו פקודה אחת ש:
- משתמשת ב-
catכדי לקרוא אתvisitors.txt - מעבירה את הפלט אל
sortכדי לסדר את השמות בסדר אלפביתי - מעבירה את הפלט אל
uniqכדי להסיר רשומות כפולות - מעבירה את הפלט אל
wc -lכדי לספור את השמות הייחודיים
רמז: שרשרו את כל ארבע הפקודות באמצעות כמה סמלי
|. זכרו ש-uniqמסירה רק כפילויות סמוכות, ולכן המיון חייב להתבצע לפניה.
נסו בעצמכם
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7תוכן הקובץ
ראש וזנבספירת מיליםפקודת המיוןפקודת הסינון לכפילויותיסודות grepgrep עם דגליםסיכום – בלש/ית טקסט13יסודות כתיבת סקריפטים ב-Shell
מהו סקריפט Shellיצירה והרצה של סקריפטמשתנים בסקריפטיםקלט משתמש בסקריפטיםמשפט ifלולאת forלולאת whileסיכום – נחשו את המספר2ניווט
הצגת ספריית העבודההצגת קבציםשינוי ספרייהנתיבים מוחלטים לעומת יחסייםספריית הבית וספריית השורשסיכום – מצאו את הדרך8ניתוב מחדש
פלט סטנדרטיכתיבה לקובץ תוך דריסת התוכןהוספה לקובץקלט סטנדרטישגיאה סטנדרטיתסיכום – בונה יומני רישום14פרויקט סקריפט לגיבוי
סקירת הפרויקטקבלת נתיב המקורתרגלו בעצמכם: Terminal אונליין