grep một tệp, nhưng hiển thị một số dòng xung quanh?

3541
Mark Harrison 2008-08-13 07:55.

Tôi muốn grepcho một chuỗi, nhưng cũng hiển thị năm dòng trước và năm dòng sau cũng như dòng phù hợp. Làm thế nào tôi có thể làm điều này?

13 answers

4700
Pat Notz 2008-08-13 07:57.

Đối với BSD hoặc GNU, grep bạn có thể sử dụng -B numđể đặt bao nhiêu dòng trước trận đấu và -A numcho số dòng sau trận đấu.

grep -B 3 -A 2 foo README.txt

Nếu bạn muốn cùng một số dòng trước và sau bạn có thể sử dụng -C num.

grep -C 3 foo README.txt

Điều này sẽ hiển thị 3 dòng trước và 3 dòng sau.

616
Stu 2008-08-13 07:59.

-A-Bsẽ hoạt động, theo ý muốn -C n(đối với ncác dòng ngữ cảnh), hoặc chỉ -n(đối với ncác dòng ngữ cảnh ... miễn là n là 1 đến 9).

78
elmarco 2008-09-08 01:13.

ack hoạt động với các đối số tương tự như grep và chấp nhận -C. Nhưng nó thường tốt hơn cho việc tìm kiếm thông qua mã.

40
dbr 2008-08-13 07:58.
grep astring myfile -A 5 -B 5

Điều đó sẽ grep "myfile" để "làm se khít lỗ chân lông" và hiển thị 5 dòng trước và sau mỗi trận đấu

20
Sam Merrell 2008-08-13 08:42.

Tôi thường sử dụng

grep searchstring file -C n # n for number of lines of context up and down

Nhiều công cụ như grep cũng có các tệp người đàn ông thực sự tuyệt vời. Tôi thấy mình đã đề cập đến trang người đàn ông của grep rất nhiều vì có rất nhiều điều bạn có thể làm với nó.

man grep

Nhiều công cụ GNU cũng có trang thông tin có thể có thêm thông tin hữu ích ngoài trang người dùng.

info grep
15
Chiel ten Brinke 2018-01-13 01:25.

Sử dụng grep

$ grep --help | grep -i context
Context control:
  -B, --before-context=NUM  print NUM lines of leading context
  -A, --after-context=NUM   print NUM lines of trailing context
  -C, --context=NUM         print NUM lines of output context
  -NUM                      same as --context=NUM
12
Malcolm Boekhoff 2013-10-08 14:21.

Tìm kiếm "17655" trong "/some/file.txt" hiển thị ngữ cảnh 10 dòng trước và sau (sử dụng Awk), đầu ra đứng trước số dòng theo sau là dấu hai chấm. Sử dụng tính năng này trên Solaris khi 'grep' không hỗ trợ các tùy chọn "- [ACB]".

awk '

/17655/ {
        for (i = (b + 1) % 10; i != b; i = (i + 1) % 10) {
                print before[i]
        }
        print (NR ":" ($0)) a = 10 } a-- > 0 { print (NR ":" ($0))
}

{
        before[b] = (NR ":" ($0))
        b = (b + 1) % 10
}' /some/file.txt;
9
kenorb 2018-04-12 00:28.

ripgrep

Nếu bạn quan tâm đến hiệu suất, hãy sử dụng ripgrepcú pháp tương tự grep, ví dụ:

rg -C5 "pattern" .

-C, --context NUM- Hiển thị NUM dòng trước và sau mỗi trận đấu.

Ngoài ra còn có các tham số như -A/ --after-context-B/ --before-context.

Công cụ này được xây dựng dựa trên công cụ regex của Rust , giúp nó hoạt động rất hiệu quả trên dữ liệu lớn.

5
kenorb 2018-04-12 00:24.

Đây là giải pháp @Ygor trongawk

awk 'c-->0;$0~s{if(b)for(c=b+1;c>1;c--)print r[(NR-c+1)%b];print;c=a}b{r[NR%b]=$0}' b=3 a=3 s="pattern" myfile

Lưu ý: Thay thế abcác biến bằng số dòng trước và sau.

Nó đặc biệt hữu ích cho hệ thống mà không hỗ trợ của grep -A, -B-Ccác thông số.

4
JBone 2019-01-06 08:39.
$ grep thestring thefile -5

-5giúp bạn có 5các dòng trên và dưới so khớp 'thestring' tương đương với -C 5hoặc -A 5 -B 5.

4
prime 2019-03-11 21:11.

Grep có một tùy chọn được gọi là Context Line Control, bạn có thể sử dụng tùy chọn --contextđó, đơn giản là

| grep -C 5

hoặc là

| grep -5

Nên làm thủ thuật

1
franzisk 2019-12-12 07:24.

Tôi sử dụng để làm theo cách nhỏ gọn

grep -5 string file

Điều đó tương đương với

grep -A 5 -B 5 string file
0
Rose 2020-04-29 07:14.

Nếu bạn thường xuyên tìm kiếm mã, AG thì trình tìm kiếm bạc sẽ hiệu quả hơn nhiều (tức là nhanh hơn) so với grep.

Bạn hiển thị các dòng ngữ cảnh bằng cách sử dụng tùy chọn -C.

Ví dụ:

ag -C 3 "foo" myFile

line 1
line 2
line 3
line that has "foo"
line 5
line 6
line 7

Related questions

MORE COOL STUFF

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett đã bất chấp những lời khuyên hẹn hò điển hình khi cô gặp chồng mình.

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Michael Sheen là một diễn viên phi lợi nhuận nhưng chính xác thì điều đó có nghĩa là gì?

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Ngôi sao của Hallmark Colin Egglesfield chia sẻ về những cuộc gặp gỡ với người hâm mộ ly kỳ tại RomaDrama Live! cộng với chương trình INSPIRE của anh ấy tại đại hội.

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Bạn sẽ phải phủi sạch đầu đĩa Blu-ray hoặc DVD để xem tại sao Northern Exposure trở thành một trong những chương trình nổi tiếng nhất của thập niên 90.

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

8 công dụng tuyệt vời của Baking Soda và Giấm

8 công dụng tuyệt vời của Baking Soda và Giấm

Bạn biết đấy, hai sản phẩm này là nguồn điện để làm sạch, riêng chúng. Nhưng cùng với nhau, chúng có một loạt công dụng hoàn toàn khác.

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Thủy điện rất cần thiết cho lưới điện của Hoa Kỳ, nhưng nó chỉ tạo ra năng lượng khi có nước di chuyển. Bao nhiêu nhà máy thủy điện có thể gặp nguy hiểm khi các hồ và sông cạn kiệt?

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Tóc tỉa từ các tiệm và các khoản quyên góp cá nhân có thể được tái sử dụng như những tấm thảm thấm dầu và giúp bảo vệ môi trường.

Các luật sư của Trump muốn vụ kiện Stormy Daniels được giải quyết trước mắt công chúng

Các luật sư của Trump muốn vụ kiện Stormy Daniels được giải quyết trước mắt công chúng

Ảnh: Getty Nếu có vẻ như câu chuyện Stormy Daniels-Donald Trump là một trò chơi bất tận giữa các luật sư (một số người trong số họ rất ngu ngốc), đó là bởi vì nó là. Vào thứ Hai, các luật sư đại diện cho luật sư của Trump, Michael Cohen và Trump đã thực hiện vở kịch mới nhất của họ: một đề nghị để vụ việc được quyết định bởi một trọng tài riêng.

Colin Trevorrow sẽ trở lại để chỉ đạo phần ba của phim thế giới kỷ Jura

Colin Trevorrow sẽ trở lại để chỉ đạo phần ba của phim thế giới kỷ Jura

Chris Pratt và Colin Trevorrow trên phim trường Jurassic World. Người đàn ông đầu tiên mạo hiểm vào Thế giới kỷ Jura sẽ trở lại đó cho phần cuối của bộ ba.

Bạn sẽ phân biệt chủng tộc như thế nào nếu người da đen thực sự có thể phân biệt chủng tộc?

Bạn sẽ phân biệt chủng tộc như thế nào nếu người da đen thực sự có thể phân biệt chủng tộc?

Một trong những điều thất vọng lớn nhất trong cuộc đời tôi - có lẽ thực sự là thất vọng lớn nhất - là người da đen ở Mỹ không có khả năng phân biệt chủng tộc. Chúng ta có thể cố gắng hết sức và ghét nhất có thể, nhưng do cách thức hoạt động của chủ nghĩa phân biệt chủng tộc, chúng ta sẽ không bao giờ có thể sử dụng tình trạng được săn đón là “phân biệt chủng tộc.

Bạn không cần phải xả những củ khoai tây nghiền này ngay lập tức

Bạn không cần phải xả những củ khoai tây nghiền này ngay lập tức

Một trong những thứ yêu thích của tôi để nấu trong Instant Pot (hoặc bất kỳ nồi áp suất nào) là các loại rau củ, nếu không sẽ mất nhiều thời gian hơn. Khoai tây chắc chắn thuộc loại này, đặc biệt là vì bạn có thể làm khoai tây nghiền hoàn toàn như kem hoàn toàn trong Nồi ăn liền mà không cần xả nước.

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa. Từ Hollywood đến New York và mọi nơi ở giữa, hãy xem các ngôi sao yêu thích của bạn đang làm gì!

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

Các nhà điều tra đang xem xét liệu nhóm và nghi phạm có biết nhau trước vụ tấn công hay không

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Vụ kiện, nêu tên một số học khu, lập luận rằng dự luật "Không nói đồng tính" được ban hành gần đây của Florida "có hiệu quả im lặng và xóa bỏ học sinh và gia đình LGBTQ +"

Đường băng hạ cánh

Đường băng hạ cánh

Cuối hè đầu thu là mùa hoài niệm. Những chiếc đèn đường chiếu ánh sáng của chúng qua những con đường đẫm mưa, và những chiếc lá dưới chân - màu đỏ cam tắt trong bóng chạng vạng - là lời nhắc nhở về những ngày đã qua.

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Vào năm 2021, tôi khuyến khích bạn suy nghĩ lại mọi thứ bạn biết về khách hàng mà bạn phục vụ và những câu chuyện bạn kể cho họ. Lùi lại.

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Vào ngày sinh nhật thứ 9 của Felix The Cat, tôi nhớ về một trong những mất mát lớn nhất trong cuộc đời trưởng thành của tôi - Sophie của tôi vào năm 2013. Tôi đã viết bài luận này và chia sẻ nó trên nền tảng này một thời gian ngắn vào năm 2013.

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Tôi ghét từ "tàu đắm". Mọi người cảm thấy thoải mái trong la bàn đạo đức của riêng mình, và khi làm như vậy, họ thấy mình vượt qua sự phán xét.

Language