คำสั่ง Pipe, Grep และ Sort ใน Linux/Unix พร้อมตัวอย่าง

ไปป์ใน Linux คืออะไร?

The Pipe คือคำสั่งใน Linux ที่ให้คุณใช้คำสั่งตั้งแต่สองคำสั่งขึ้นไป โดยที่เอาต์พุตของคำสั่งเดียวทำหน้าที่เป็นอินพุตของคำสั่งถัดไป กล่าวโดยสรุป ผลลัพธ์ของแต่ละกระบวนการโดยตรงเป็นอินพุตไปยังขั้นตอนถัดไป เช่น ไปป์ไลน์ สัญลักษณ์ '|' หมายถึงท่อ

Pipes ช่วยให้คุณรวมคำสั่งสองคำสั่งหรือมากกว่านั้นเข้าด้วยกันได้ในเวลาเดียวกันและรันคำสั่งเหล่านั้นได้อย่างต่อเนื่อง คุณสามารถใช้คำสั่งที่มีประสิทธิภาพซึ่งสามารถทำงานที่ซับซ้อนได้ในพริบตา

ให้เราเข้าใจสิ่งนี้ด้วยตัวอย่าง

เมื่อคุณใช้คำสั่ง 'cat' เพื่อดูไฟล์ที่ขยายหลายหน้า ข้อความแจ้งจะข้ามไปยังหน้าสุดท้ายของไฟล์อย่างรวดเร็ว และคุณจะไม่เห็นเนื้อหาตรงกลาง

เพื่อหลีกเลี่ยงปัญหานี้ คุณสามารถไพพ์เอาต์พุตของคำสั่ง 'cat' ไปที่ 'less' ซึ่งจะแสดงเนื้อหาที่มีความยาวเพียงเลื่อนครั้งละหนึ่งรายการเท่านั้น

cat filename | less 

ภาพประกอบจะทำให้ชัดเจน

ไปป์ใน Linux คืออะไร

คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้

คำสั่ง 'pg' และ 'เพิ่มเติม'

แทนที่จะใช้ 'น้อย' คุณยังสามารถใช้

cat Filename | pg 

or

cat Filename | more

และคุณสามารถดูไฟล์เป็นบิตย่อยได้และเลื่อนลงโดยเพียงแค่กดปุ่ม Enter

คำสั่ง 'pg' และ 'เพิ่มเติม'

คำสั่ง 'grep'

สมมติว่าคุณต้องการค้นหาข้อมูลเฉพาะรหัสไปรษณีย์จากไฟล์ข้อความ

คุณอาจอ่านเนื้อหาด้วยตนเองเพื่อติดตามข้อมูล ตัวเลือกที่ดีกว่าคือใช้คำสั่ง grep มันจะสแกนเอกสารเพื่อหาข้อมูลที่ต้องการและนำเสนอผลลัพธ์ในรูปแบบที่คุณต้องการ

ไวยากรณ์:

grep search_string

มาดูกันในการดำเนินการ –

คำสั่ง 'grep'

ที่นี่ grep คำสั่งได้ค้นหาไฟล์ 'ตัวอย่าง' สำหรับสตริง 'Apple' และ 'Eat'

สามารถใช้ตัวเลือกต่อไปนี้กับคำสั่งนี้ได้

ตัวเลือกเสริม (Option) ฟังก์ชัน
-v แสดงบรรทัดทั้งหมดที่ไม่ตรงกับสตริงที่ค้นหา
-c แสดงเฉพาะจำนวนบรรทัดที่ตรงกัน
-n แสดงเส้นที่ตรงกันและหมายเลข
-i จับคู่ทั้งตัวพิมพ์เล็ก (บนและล่าง)
-l แสดงเฉพาะชื่อไฟล์ด้วยสตริง

ให้เราลองตัวเลือกแรก '-ฉัน' ในการใช้ไฟล์เดียวกันด้านบน –

การใช้ตัวเลือก 'i' grep ได้กรองสตริง 'a' (ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) จากทุกบรรทัด

คำสั่ง 'grep'

คำสั่ง 'เรียงลำดับ'

คำสั่งนี้ช่วยในเรื่อง การเรียงลำดับเนื้อหาของไฟล์ตามตัวอักษร

ไวยากรณ์สำหรับคำสั่งนี้คือ:

sort Filename

พิจารณาเนื้อหาของไฟล์

คำสั่ง 'เรียงลำดับ'

การใช้คำสั่ง sort

คำสั่ง 'เรียงลำดับ'

มี ส่วนขยาย ไปยังคำสั่งนี้เช่นกัน โดยมีรายการอยู่ด้านล่าง

ตัวเลือกเสริม (Option) ฟังก์ชัน
-r Revทำการเรียงลำดับ
-n จัดเรียงเป็นตัวเลข
-f การเรียงลำดับแบบคำนึงถึงขนาดตัวพิมพ์

ตัวอย่างด้านล่างแสดงการเรียงลำดับเนื้อหาในไฟล์ 'abc' แบบย้อนกลับ

คำสั่ง 'เรียงลำดับ'

ตัวกรองคืออะไร?

Linux มีคำสั่งตัวกรองมากมาย เช่น awk, grep, sed,สะกด และ wc ตัวกรองรับอินพุตจากคำสั่งเดียว ดำเนินการบางอย่าง และให้เอาต์พุต

เมื่อคุณไพพ์สองคำสั่ง เอาต์พุต "กรอง" ของคำสั่งแรกจะถูกส่งไปยังคำสั่งถัดไป

ตัวกรองคืออะไร

มาทำความเข้าใจกับตัวอย่างนี้กัน

เรามีไฟล์ 'ตัวอย่าง' ดังต่อไปนี้

ตัวกรองคืออะไร

เราต้องการที่จะเน้น เฉพาะบรรทัดที่ไม่มีอักขระ 'a' แต่ผลลัพธ์ควรอยู่ในลำดับย้อนกลับ

สำหรับสิ่งนี้ สามารถใช้ไวยากรณ์ต่อไปนี้ได้

cat sample | grep -v a | sort - r

เรามาดูผลลัพธ์กันดีกว่า

ตัวกรองคืออะไร

สรุป:

  • ไปป์ '|' ส่งเอาต์พุตของคำสั่งหนึ่งไปเป็นอินพุตของคำสั่งอื่น
  • ตัวกรองรับอินพุตจากคำสั่งเดียว ดำเนินการบางอย่าง และให้เอาต์พุต
  • คำสั่ง grep สามารถใช้ค้นหาสตริงและค่าในเอกสารข้อความ
  • การส่งผ่าน grep จะต้องเป็นหนึ่งในการใช้งานที่พบบ่อยที่สุด
  • คำสั่ง 'sort' เรียงลำดับเนื้อหาของไฟล์ตามตัวอักษร
  • คำสั่ง less, pg และ more ใช้ในการแบ่งไฟล์ยาวๆ ให้เป็นบิตที่อ่านได้