findstr Đối số nhiều chuỗi của lệnh DOS


21
findstr /v "black"  File1.txt

Lệnh DOS bên trên sẽ hiển thị nội dung của 'File1.txt' không khớp với chuỗi "đen".

Làm cách nào để sửa đổi lệnh này, nếu tôi cần lọc các từ "đen" và "trắng"?


2
Công findstrcụ này không phải là một phần của MS-DOS. Nó đi kèm với Windows (XP +?). Tôi nghĩ bạn có nghĩa là 'công cụ dòng lệnh' thay vì 'lệnh DOS'.
Michel de Ruiter

Câu trả lời:


30

Làm cách nào để lọc từ "đen" và "trắng"?

Lệnh sau sẽ hiển thị tất cả các dòng có chứa "black" NOR "white" :

findstr /v "black white" blackwhite.txt

Lệnh sau sẽ hiển thị tất cả các dòng có chứa "black" OR "white" :

findstr "black white" blackwhite.txt

Lệnh sau sẽ hiển thị tất cả các dòng chứa CHÍNH XÁC "black white ":

findstr /c:"black white" blackwhite.txt

Lệnh sau sẽ hiển thị tất cả các dòng chứa "black" AND "white" :

findstr "white" blackwhite.txt | findstr "black"

Ghi chú:

  • Khi chuỗi tìm kiếm chứa nhiều từ, được phân tách bằng dấu cách, sau đó findstrsẽ trả về các dòng có chứa một từ (OR).

  • Một tìm kiếm theo nghĩa đen ( /C:string) sẽ đảo ngược hành vi này và cho phép tìm kiếm một cụm từ hoặc câu. Một tìm kiếm theo nghĩa đen cũng cho phép tìm kiếm các ký tự dấu chấm câu.

Tệp dữ liệu mẫu (blackwhite.txt):

red
black
white
blue
black white
black and white

Ví dụ đầu ra:

F:\test>findstr /v "black white" blackwhite.txt

red
blue

F:\test>findstr "black white" blackwhite.txt
black
white
black white
black and white

F:\test>findstr /c:"black white" blackwhite.txt
black white

F:\test>findstr "white" blackwhite.txt | findstr "black"
black white
black and white

Đọc thêm


1
rất thú vị .. Tôi đoán điều này sẽ được tìm kiếm cho màu trắng VÀ đenfindstr "white" File2.txt | findstr "black"
barlop

tốt, vì chúng ta có NOR, nên vẫn còn một hoán vị mà chúng ta có thể xem là mất tích. NAND. Một cái khác mà chúng tôi có thể xem xét mất tích, là XOR
barlop

@barlop Tôi không thể tìm ra cách thực hiện NAND hoặc XOR: / Tôi biết đầu ra nên là gì nhưng làm thế nào để đạt được điều đó ...
DavidPostill

có lẽ không phải là một cách nhanh chóng tốt đẹp, nó có thể là một tệp kiểm tra lỗi hàng loạt có thể tốt hơn để sử dụng một số công cụ khác nếu làm điều đó, có vẻ như grep không thể ,. Nhưng awk có thể làm khá nhiều hoặc dĩ nhiên là perl unix.stackexchange.com/questions/177513/ mẹo
barlop


0

Nếu bạn cần hiển thị tất cả các dòng có chữ "đen" hoặc "trắng" thì hãy loại bỏ / v trong lệnh của bạn.

Hãy thử: findstr trắng File1.txt hoặc findstr đen File1.txt hoặc findstr "đen trắng" File1.txt

Toán hạng / V sẽ in tất cả các dòng KHÔNG chứa chuỗi tìm kiếm của bạn.

Gõ findstr /? để biết thêm thông tin về cách sử dụng findstr.

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.