Cú pháp tìm kiếm trên Mac OS X


6

Tôi có một thư mục dự án chứa mã nguồn và thư mục con của mã nguồn. Tôi muốn sử dụng chương trình Unix findđể tìm kiếm đệ quy tên của các tệp của các phần mở rộng nhất định. Các phiên bản findtrên Linux và Mac OS X hoạt động khác nhau.

# Works in Linux
find . -type f -regex ".*\.\(py\|html\)$"

# Neither of these works in Mac OS X
find . -type f -regex ".*\.\(py\|html\)$"
find . -type f -regex ".*\.(py|html)$"

Làm cách nào để viết lệnh này để nó chạy trên Mac OS X (và hy vọng trên Linux cũng vậy)?


Sẽ rất hữu ích nếu bạn nói với chúng tôi về cách họ cư xử khác nhau.
Nifle

Lệnh được cho là để tìm tập tin. Trên OS X, lệnh tương tự không tìm thấy gì (tệp không).
hekevintran

Câu trả lời:


9

Mac OS X sử dụng BSD find và hầu hết các bản phân phối Linux đều đi kèm với GNU find . Tôi tin rằng bạn có thể cài đặt công cụ tìm kiếm GNU trên Mac OS X. Tôi không có máy Mac tiện dụng, nhưng tôi chắc chắn rằng nó có sẵn trong MacPorts .

Nhìn vào trang tìm BSD, tôi có thể đoán mò và đề nghị bạn thử xem -Etùy chọn để bật thư viện biểu thức chính quy hiện đại.


1
Nhận findutils từ MacPorts đã lừa.
hekevintran

Findutils cũng có sẵn thông qua Homebrew. Lệnh sau khi cài đặt làgfind
Eric Hu

4

Công việc sau đây với BSD tìm thấy trên OS X.

find -E . -type f -regex ".*\.(py|html)$"

find . -type f | grep -e ".*\.\(py\|html\)$"
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.