4. การส่งต่อผลลัพธ์ หรือ ไปป์ (Pipes)

 

4.1 ความหมาย

ไปป์เป็นการส่งต่อผลลัพธ์จากคำสั่งหนึ่งไปเป็นค่านำเข้าของอีกคำสั่งหนึ่ง

4.2 ตัวอย่างไปป์

$ ls -l | sed -e "s/[aeio]/u/g"

ตัวอย่างนี้จะนำเอาผลลัพธ์ที่ได้จากคำสั่ง ls -l ส่งต่อไปให้คำสั่ง sed -e "s/[aeio]/u/g"
ซึ่งจะแปลงการแสดงผลจากอักขระ a หรือ e หรือ i หรือ o ไปเป็นอักขระ u ทั้งหมด

เราอาจเขียนคำสั่งเทียบเท่าได้ดังนี้

$ ls -l > temp.txt
$ sed -e "s/[aeio]/u/g" temp.txt
$ rm temp.txt

จะเห็นว่าการทำไปป์ ลดขั้นตอนไปมาก คงเหลือเพียงบรรทัดเดียว

4.3 ตัวอย่างไปป์ที่สอง

$ ls -l | grep "\.txt$"

ตัวอย่างนี้จะส่งผลลัพธ์จากคำสั่ง ls -l ต่อไปให้คำสั่ง grep "\.txt$" คือให้แสดงเฉพาะไฟล์ที่มีนามสกุลเป็น .txt เท่านั้น
มีค่าเท่ากับคำสั่ง ls แบบใส่พารามิเตอร์กรอง

$ ls -l *.txt

หมายเหตุ
รูปแบบ "\.txt$" เป็นรูปแบบของ Regular Expression ซึ่งใช้มากในเชลล์สคริปต์ มีความหมายว่า "ที่ต้องลงท้ายด้วย .txt"