Làm cách nào để 'grep' hoạt động như trong Ubuntu?


24

Tôi đã cố gắng sử dụng grepđể khớp với một mẫu trên thiết bị đầu cuối, nhưng không có kết quả nào được đưa ra.

$ grep -R 'networks'
grep: warning: recursive search of stdin

Tôi biết greptrên macOS dựa trên BSD trong khi greptrên Ubuntu dựa trên GNU.

Làm cách nào để 'grep' hoạt động trên macOS như trong Ubuntu?

Câu trả lời:


33

Khi -Rtùy chọn được sử dụng, MacOS grepyêu cầu bạn cung cấp cho nó một thư mục để tìm kiếm; ví dụ: chỉ định .để tìm kiếm đệ quy thư mục hiện tại:

grep -R 'networks' .

9

Về lâu dài, có lẽ tốt nhất là cài đặt các công cụ dựa trên GNU hoặc chạy Ubuntu hầu như. Cả hai đều có sẵn miễn phí.

brew install coreutils(để chạy brewlệnh bạn cần cài đặt homebrew từ https://brew.sh ) sẽ đưa các phiên bản GNU của các công cụ vào đường dẫn của bạn. Tìm kiếm ggreplệnh và có thể là một grepgói độc lập để cài đặt vì coreutils có xu hướng thay đổi theo thời gian những gì nó bao gồm.

(EDIT: Lưu ý rằng kể từ năm 2018 , grepcụ thể cần phải được cài đặt riêng biệtcoreutils như sau:

$ brew install grep
$ ggrep sometext file.txt     # Note the executable is called ggrep with two G's

và có một tên thực thi duy nhất ggrepcó hai chữ G.)

Ngoài ra tìm kiếm ở đây cho GNU hoặc coreutils sẽ hữu ích cho bối cảnh và mẹo / thủ thuật.


2
Lưu ý rằng ít nhất bây giờ grepkhông được bao gồm trong coreutilsgói trong brewnhưng trong gói riêng của nó được gọi làgrep
fejese

2
Cũng lưu ý rằng thực thi được gọi là ggrep(hàng đầu g) bây giờ.
dotancohen

1
Cảm ơn @dotancohen - vui lòng chỉ chỉnh sửa câu trả lời nếu bạn chắc chắn về tình huống này. Có lịch sử sửa đổi và chúng tôi luôn có thể trò chuyện nếu một thay đổi không rõ ràng với một người hoặc cần xem xét / điều chỉnh thêm. +1 cho nhận xét - cảm ơn lần nữa
bmike
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.