นี่ไม่ใช่สิ่งที่grepจะทำ ชื่อ "grep" เป็นคำย่อของ " globalนิพจน์และพิมพ์ปกติ" ซึ่งเป็นสิ่งที่edคำสั่งg/re/pทำ (สำหรับนิพจน์ทั่วไปที่กำหนดre)
edเป็นตัวแก้ไขบรรทัดแบบอินเทอร์แอคทีฟจาก 1969 แต่ก็มีโอกาสมากที่จะติดตั้งในระบบของคุณในทุกวันนี้ เราได้grepมาจากedและมันสามารถถูกมองว่าเป็นทางลัดหรือนามแฝงสำหรับการทำงานเฉพาะของedและsedซึ่งก็คือ " edกระแส -" เช่นตัวแก้ไขกระแส (ไม่ใช่แบบโต้ตอบ)
มาใช้sedแทน:
$ sed -n '1p' file.txt
1pสตริงเป็นเล็ก ๆsed"สคริปต์" ที่พิมพ์ ( p) บรรทัดที่สอดคล้องกับที่อยู่ที่กำหนด ( 1บรรทัดแรก) คำสั่งแก้ไข1pจะ (ไม่แปลกใจ) ทำสิ่งเดียวกันในตัวedแก้ไขโดยวิธี
ยับยั้งการส่งออกของอะไรไม่พิมพ์อย่างชัดเจนโดยสคริปต์ดังนั้นสิ่งที่เราได้รับเป็นบรรทัดแรกของไฟล์-nfile.txt
อีกวิธีหนึ่งคือ:
$ sed '1q' file.txt
สิ่งนี้จะพิมพ์ทุกบรรทัดของไฟล์ แต่ออก ( q) ที่บรรทัด 1 (หลังจากพิมพ์) head -n 1 file.txtตรงนี้เป็นเทียบเท่ากับ
ในมาตรฐาน POSIX มีข้อความระบุว่า (การวางหลักเกณฑ์ทั่วไป) ซึ่งhead -n Nเหมือนกับsed 'Nq'"พิมพ์ทุกบรรทัด แต่ออกจากบรรทัดN" เหตุผลที่headรวมอยู่ในมาตรฐานที่ทุกคนเป็นเพราะสมมาตรกับtail(และความเข้ากันได้ย้อนหลังกับการใช้งาน Unix ที่มีอยู่)
head -1 file.txtไม่ทำงาน