findstr Argument wielokrotnego ciągu DOS Command

21
findstr /v "black"  File1.txt

Powyższe polecenie DOS wyświetli zawartość „File1.txt”, która nie pasuje do ciągu „black”.

Jak zmodyfikować to polecenie, jeśli muszę filtrować słowa „czarny” i „biały”?

Bieg
źródło
2
findstrNarzędzie nie jest częścią systemu MS-DOS. Pochodzi z systemem Windows (XP +?). Myślę, że masz na myśli „narzędzie wiersza poleceń” zamiast „polecenia DOS”.
Michel de Ruiter,

Odpowiedzi:

30

Jak filtrować słowa „czarny” i „biały”?

Następujące polecenie wyświetli wszystkie linie zawierające "black" NOR "white" :

findstr /v "black white" blackwhite.txt

Następujące polecenie wyświetli wszystkie linie zawierające "black" LUB "white" :

findstr "black white" blackwhite.txt

Następujące polecenie wyświetli wszystkie wiersze zawierające DOKŁADNIE "black white ":

findstr /c:"black white" blackwhite.txt

Następujące polecenie wyświetli wszystkie linie zawierające "black" AND "white" :

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

Uwagi:

  • Gdy szukany ciąg zawiera wiele słów oddzielonych spacjami, wówczas findstrzwracane są wiersze zawierające jedno ze słów (LUB).

  • Dosłowne wyszukiwanie ( /C:string) odwróci to zachowanie i umożliwi wyszukiwanie frazy lub zdania. Wyszukiwanie dosłowne pozwala również na wyszukiwanie znaków interpunkcyjnych.

Przykładowy plik danych (blackwhite.txt):

red
black
white
blue
black white
black and white

Przykładowe dane wyjściowe:

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

Dalsza lektura

DavidPostill
źródło
1
bardzo interesujące .. Myślę, że byłoby to szukanie białego ORAZ czarnegofindstr "white" File2.txt | findstr "black"
barlop
skoro mamy NOR, więc nadal istnieje permutacja, którą moglibyśmy pominąć. NAND Kolejnym, który moglibyśmy uznać za zaginiony, jest XOR
barlop
@barlop Nie mogę wymyślić, jak zrobić NAND lub XOR: / Wiem, jaki powinien być wynik, ale jak się tam dostać ...
DavidPostill
może nie ma szybkiego sposobu, prawdopodobnie poziom błędu sprawdzania pliku wsadowego prawdopodobnie lepiej użyć innego narzędzia, jeśli robi to, wygląda na to, że grep nie może. Ale awk może zrobić całkiem sporo lub oczywiście perl unix.stackexchange.com/questions/177513/…
barlop
0

Jeśli chcesz wyświetlić wszystkie wiersze ze słowami „czarny” lub „biały”, pozbądź się / v polecenia.

Wypróbuj: findstr biały File1.txt lub findstr czarny File1.txt lub findstr „czarny biały” File1.txt

Operand / V wypisze wszystkie wiersze, które NIE zawierają szukanego ciągu.

Wpisz findstr /? aby uzyskać więcej informacji na temat korzystania z findstr.

Dean Spicer
źródło