Đọc dòng đầu tiên của tệp bằng bash


8

Có ai biết một lót đơn giản để đọc dòng đầu tiên của tệp trong bash không?

Câu trả lời:


24
read -r FIRSTLINE < filename

Kết quả tương tự như các câu trả lời khác nhưng nhanh hơn vì nó không sinh ra bất kỳ quá trình nào, vì "đọc" là một lệnh bash tích hợp.


điểm tốt, +1 cho bạn
drAlberT

Điều này thực hiện tốt hơn nhiều so với thực hiện 'head -n 1'. Tôi đã đọc dòng đầu tiên của 265 tệp và thời gian của tôi đã chuyển từ khoảng 15 giây xuống dưới 1 giây
s3v1


6
FIRSTLINE=`head -n 1 filename`

Lưu trữ dòng trong một biến để sử dụng sau này (lưu ý các dấu nháy ngược).


5
$ (lệnh) là một hình thức thay thế để tránh sử dụng dấu tích ngược, thậm chí không đơn giản để tìm thấy trên một số bàn phím nhất định.
drAlberT

1
câu trả lời tốt, nhưng tôi đang bỏ phiếu vì câu trả lời của e-t172 tốt hơn. Đọc là dành cho điều này, và nó được tích hợp để bash, như ông nói.
Lee B

2
không, bỏ phiếu cho một "câu trả lời tốt" vì nó không phải là tốt nhất có thể không lịch sự như bạn nghĩ sao?
Tiến sĩ

3
Lee - Tại sao không chỉ nâng cấp người bạn thích thay thế? Downvote chỉ nên được cung cấp cho thông tin thực tế không chính xác hoặc ngoài chủ đề.
MDMarra


1
awk 'NR == 1' /etc/passwd

1
Điều này sẽ quét toàn bộ tệp, sau đó trả về dòng đầu tiên, không hiệu quả đối với tệp lớn. đọc -r là tốt hơn.
Richard
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.