2013-08-02 34 views
8

Tôi muốn tìm kiếm một chuỗi, ví dụ: "chính" trong dự án của tôi trên Windows OS đệ quy. Tôi đã tìm kiếm và tìm giải pháp Windows recursive grep command-lineTìm kiếm đệ quy một chuỗi trên windows OS

Tôi áp dụng cùng với hai cách tiếp cận khác nhau và kết quả không như mong đợi.

ví dụ: Cách tiếp cận của tôi

findstr /S "main" *.cpp 

nhưng khi tôi chọn

findstr /S "int main" *.cpp 

tôi không nhận được chỉ có chức năng chính của tôi. Sự khác nhau giữa hai cách tiếp cận này là gì? có sai khi cung cấp các chuỗi không gian?

+2

Tại sao thẻ này được gắn thẻ vào 'C++'? – P0W

+1

@ P0W .. Thực ra tôi đang sử dụng các tệp C++ trong dự án của mình. Nếu nó không phải là giá trị thẻ tôi có thể loại bỏ nó. – someone

+0

@Krishna và đã bị xóa! – P0W

Trả lời

14

Điều này là do findstr lấy số bộ dây để tìm kiếm. Để thực sự phù hợp với chuỗi int main bạn phải sử dụng các tùy chọn /C:

findstr /s /C:"int main" *.cpp 

trong khi biến thể của bạn cung cấp cho bạn tất cả các dòng với một trong hai int hay main.

+0

@Joey ... Cảm ơn ... Tôi đã nhận được kết quả mong đợi của mình ... – someone

1

Loại muộn để bên đây, nhưng nếu bạn sử dụng

findstr /S "int.main" *.cpp 

nó sẽ xử lý dấu chấm như một thẻ hoang dã, mà phù hợp với không gian, và chừng nào bạn không nhớ một số kết quả không cần thiết (không chắc trong trường hợp này) nó sẽ hoạt động tốt cho bạn.

Tôi sử dụng điều đó, chưa biết về tùy chọn/C: trước khi đọc câu trả lời ở trên.

Các vấn đề liên quan