นี่ไม่ใช่สิ่งที่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
แก้ไขโดยวิธี
ยับยั้งการส่งออกของอะไรไม่พิมพ์อย่างชัดเจนโดยสคริปต์ดังนั้นสิ่งที่เราได้รับเป็นบรรทัดแรกของไฟล์-n
file.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
ไม่ทำงาน