2013-08-30 71 views
11

Tôi có tài liệu nhiều dòng mà từ đó tôi tìm cách trích xuất một từ khóa cụ thể và từ đó sau đó. Nó trông giống như thế này:Egrep/Sed: chỉ trả về kết quả regex, không phải toàn bộ dòng

This is key word1 line 1. 

This is line 2. 

This is key word2 line 3. 

Nếu tôi sử dụng egrep 'key [^s]+ ', đầu ra là:

This is key word1 line 1. 

This is key word2 line 2. 

Tuy nhiên tôi muốn đầu ra là trận đấu chỉ như trái ngược với toàn bộ dòng, đó là:

key word1 

key word2 

Có cách nào để làm điều đó không? Có vẻ như một nhiệm vụ đủ đơn giản nhưng tôi đã đập đầu vào bức tường lúc này. Cảm ơn bạn đã giúp đỡ!

+0

Bản sao y của (http://stackoverflow.com/questions/1546711/can-grep-show-only-words-that-match- mẫu tìm kiếm) –

Trả lời

34

grep(1) có cờ -o chỉ xuất ra phần phù hợp của dòng. Từ man page:

-o, --only-matching 
     Show only the part of a matching line that matches PATTERN. 

mô hình của bạn là không đúng để có được kết quả bạn muốn, mặc dù. Hãy thử: [? Có thể grep chỉ hiển thị chữ phù hợp với mô hình tìm kiếm]

$ egrep -o 'key \w+' file 
key word1 
key word2