Đây không phải là một cái gì đó grep
làm. Bản thân tên "grep" là từ viết tắt của " toàn cầu tìm kiếm một biểu thức chính quy và in", đó là những gì ed
lệnh g/re/p
thực hiện (đối với một biểu thức chính quy định re
).
ed
là một trình chỉnh sửa dòng tương tác từ năm 1969, nhưng rất có thể nó đã được cài đặt trên hệ thống của bạn ngày hôm nay. Chúng tôi đã nhận grep
từ ed
, và nó có thể được xem như một phím tắt hoặc bí danh cho một chức năng cụ thể của ed
, và sed
, đó là "stream- ed
", tức là một (không tương tác) biên tập suối.
Hãy sử dụng sed
thay thế:
$ sed -n '1p' file.txt
Các 1p
chuỗi là một nhỏ sed
"kịch bản" mà bản in ( p
) dòng tương ứng với địa chỉ nhất định ( 1
, dòng đầu tiên). Lệnh chỉnh sửa 1p
sẽ (không có gì bất ngờ) làm điều tương tự trong ed
trình chỉnh sửa .
Việc -n
ngăn chặn đầu ra của bất cứ thứ gì không được in rõ ràng bởi tập lệnh, vì vậy tất cả những gì chúng ta nhận được là dòng đầu tiên của tệp file.txt
.
Cách khác:
$ sed '1q' file.txt
Điều này in tất cả các dòng của tệp, nhưng thoát ( q
) ở dòng 1 (sau khi in). Điều này chính xác tương đương với head -n 1 file.txt
.
Trong tiêu chuẩn POSIX, nó nói (khái quát hóa) head -n N
giống như sed 'Nq'
"in mọi dòng, nhưng thoát khỏi dòng N
". Lý do head
được bao gồm trong tiêu chuẩn hoàn toàn là do tính đối xứng với tail
(và khả năng tương thích ngược với các triển khai Unix hiện có).
head -1 file.txt
không làm việc?