2012-01-29 44 views
6

Tôi đã trải qua khóa học trực tuyến UNIX và đã gặp phải câu hỏi này mà tôi đang gặp phải. Sẽ đánh giá cao sự giúp đỡ nào!giải nén dòng đầu tiên từ tệp bằng lệnh awk

Bạn được cung cấp một bộ tệp mỗi tệp chứa chi tiết cá nhân về một cá nhân. Mỗi tập tin được đặt ra trong định dạng sau, với một tập tin cho mỗi cá nhân:

name:Niko Tanaka 
age:41 
occupation:Doctor 

tôi biết câu trả lời phải là theo hình thức:

n=$(awk -F: ' / /{print }' filename) 
+6

'awk NR == 1', hoặc làm bạn phải chỉ in tên? 'awk -F: 'NR == 1 {print $ 2}'' – Kevin

+2

Và trong trường hợp tệp rất lớn, có thể làm tốt 'làm ơn' NR == 1 {print; thoát} ''để tệp không được đọc nữa sau dòng đầu tiên. – fedorqui

Trả lời

4
n=$(awk -F: '/name/{print $2}' infile) 

Dù là bên trong / / là cụm từ thông dụng. Trong trường hợp này, bạn chỉ muốn khớp trên dòng có chứa 'name'.

16
awk 'NR==1' filename 

quả

name:Niko Tanaka 
Các vấn đề liên quan