มีวิธีที่ดีกว่าในการรวมคำสั่งไหม?
การใช้การเปลี่ยนเส้นทางเพื่อรวมคำสั่งมีข้อเสีย 2 ประการ:
- ทิ้งไฟล์ขั้นกลางไว้จำนวนมาก (เช่น
top.csv) - คำสั่งที่ใช้สร้างผลลัพธ์สุดท้ายกระจายอยู่หลายบรรทัดในประวัติคำสั่ง
เชลล์มีเครื่องมืออีกตัวที่แก้ปัญหาทั้งสองนี้ได้พร้อมกัน เรียกว่า pipe
ลองเริ่มต้นด้วยการรัน head ก่อน:
head -n 5 seasonal/summer.csv
แทนที่จะส่งผลลัพธ์ของ head ไปยังไฟล์ ให้เพิ่มแถบแนวตั้งแล้วตามด้วยคำสั่ง tail โดยไม่ต้องระบุชื่อไฟล์:
head -n 5 seasonal/summer.csv | tail -n 3
สัญลักษณ์ pipe บอกให้เชลล์นำผลลัพธ์จากคำสั่งทางซ้ายไปใช้เป็นข้อมูลนำเข้าของคำสั่งทางขวา
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Introduction to Shell
คำแนะนำการฝึกหัด
ใช้ cut เพื่อดึงชื่อฟันทั้งหมดจากคอลัมน์ที่ 2 ของไฟล์ที่คั่นด้วยจุลภาค seasonal/summer.csv จากนั้น pipe ผลลัพธ์ไปยัง grep โดยใช้การจับคู่แบบกลับด้าน เพื่อกรองบรรทัดส่วนหัวที่มีคำว่า "Tooth" ออก cut และ grep ได้อธิบายโดยละเอียดในบทที่ 2 แบบฝึกหัดที่ 8 และ 11 ตามลำดับ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำจริง
เปลี่ยนทฤษฎีให้เป็นการลงมือทำด้วยแบบฝึกหัดเชิงโต้ตอบหนึ่งในของเรา
เริ่มแบบฝึกหัด