findstr DOS Komutunun çoklu dize argümanı


21
findstr /v "black"  File1.txt

DOS komutunun üstünde, "siyah" dizesiyle eşleşmeyen "Dosya1.txt" içeriği görüntülenecektir.

"Siyah" ve "beyaz" kelimelerini filtrelemem gerekirse bu komutu nasıl değiştirebilirim?


2
findstrAracı, MS-DOS bir parçası değildir. Windows (XP +?) İle birlikte gelir. Sanırım 'DOS komutu' yerine 'komut satırı aracı' demek istediniz.
Michel de Ruiter

Yanıtlar:


30

"Siyah" ve "beyaz" kelimelerini nasıl filtreleyebilirim?

Aşağıdaki komut "black" NOR içeren tüm satırları görüntüler "white":

findstr /v "black white" blackwhite.txt

Aşağıdaki komut, "black" OR içeren tüm satırları görüntüler "white":

findstr "black white" blackwhite.txt

Aşağıdaki komut, EXACTLY içeren tüm satırları görüntüler "black white":

findstr /c:"black white" blackwhite.txt

Aşağıdaki komut, "black" AND içeren tüm satırları görüntüler "white":

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

Notlar:

  • Arama dizesi boşluklarla ayrılmış birden çok kelime findstriçerdiğinde, her iki kelimeyi (VEYA) içeren satırları döndürür.

  • Değişmez bir arama ( /C:string) bu davranışı tersine çevirir ve bir cümle veya cümle aramaya izin verir. Değişmez arama ayrıca noktalama işaretlerinin aranmasına izin verir.

Örnek veri dosyası (blackwhite.txt):

red
black
white
blue
black white
black and white

Örnek çıktı:

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

Daha fazla okuma


1
çok ilginç .. Sanırım bu beyaz VE siyah findstr "white" File2.txt | findstr "black"
arayacak

NOR'lu olduğumuz için, kayıp olduğunu düşünebileceğimiz bir permütasyon var. NAND.
Kaybetmeyi

@barlop NAND veya XOR'un nasıl yapılacağını anlayamıyorum: / Çıktının ne olması gerektiğini biliyorum ama oraya nasıl gideceğim ...
DavidPostill

belki güzel bir hızlı yolu yoktur, muhtemelen bunu yaparken başka bir aracı kullanmak için muhtemelen daha iyi bir toplu iş dosyası kontrol hatası, grep olamaz gibi görünüyor. Ama awk biraz yapabilir ya da elbette perl unix.stackexchange.com/questions/177513/…
barlop


0

Tüm satırları "siyah" veya "beyaz" kelimeleriyle görüntülemeniz gerekiyorsa, komutunuzdaki / v komutundan kurtulun.

Deneyin: findstr beyaz File1.txt veya findstr siyah File1.txt veya findstr "siyah beyaz" Dosya1.txt

/ V işlenen, arama dizenizi İÇERMEZ tüm satırları yazdıracaktır.

Findstr /? Yazın findstr.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.