argumen multi-string findstr DOS Command

21
findstr /v "black"  File1.txt

Perintah DOS di atas akan menampilkan konten 'File1.txt' yang tidak cocok dengan string "hitam".

Bagaimana cara memodifikasi perintah ini, jika saya perlu memfilter kata "hitam" dan "putih"?

Arun
sumber
2
The findstralat bukan bagian dari MS-DOS. Muncul dengan Windows (XP +?). Saya pikir maksud Anda 'alat baris perintah' bukan 'perintah DOS'.
Michel de Ruiter

Jawaban:

30

Bagaimana cara saya memfilter kata "hitam" dan "putih"?

Perintah berikut akan menampilkan semua baris yang berisi "black" NOR "white" :

findstr /v "black white" blackwhite.txt

Perintah berikut akan menampilkan semua baris yang berisi "black" ATAU "white" :

findstr "black white" blackwhite.txt

Perintah berikut akan menampilkan semua baris yang mengandung PERSIS "black white ":

findstr /c:"black white" blackwhite.txt

Perintah berikut akan menampilkan semua baris yang berisi "black" DAN "white" :

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

Catatan:

  • Ketika string pencarian berisi banyak kata, dipisahkan dengan spasi, maka findstrakan kembali baris yang mengandung salah satu kata (OR).

  • Pencarian literal ( /C:string) akan membalikkan perilaku ini dan memungkinkan pencarian frasa atau kalimat. Pencarian literal juga memungkinkan pencarian karakter tanda baca.

Contoh data file (blackwhite.txt):

red
black
white
blue
black white
black and white

Contoh output:

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

Bacaan lebih lanjut

DavidPostill
sumber
1
sangat menarik .. Saya kira ini akan mencari putih DAN hitamfindstr "white" File2.txt | findstr "black"
barlop
baik, karena kita memiliki NOR, Jadi masih ada permutasi yang bisa kita anggap hilang. NAND. Satu lagi yang kami anggap hilang, adalah XOR
barlop
@barlop Saya tidak tahu bagaimana melakukan NAND atau XOR: / Saya tahu apa yang harus dihasilkan tetapi bagaimana menuju ke sana ...
DavidPostill
mungkin tidak ada cara cepat yang bagus, mungkin akan menjadi batch file yang memeriksa errorlevel mungkin lebih baik untuk menggunakan beberapa alat lain jika melakukan itu, sepertinya grep tidak bisa,. Tetapi awk dapat melakukan sedikit atau tentu saja perl unix.stackexchange.com/questions/177513/…
barlop
0

Jika Anda perlu menampilkan semua baris dengan kata-kata "hitam" atau "putih" maka singkirkan / v pada perintah Anda.

Coba: findstr putih File1.txt atau findstr hitam File1.txt atau findstr "hitam putih" File1.txt

Operand / V akan mencetak semua baris yang TIDAK mengandung string pencarian Anda.

Ketik findstr /? untuk info lebih lanjut tentang cara menggunakan findstr.

Dean Spicer
sumber