Mehrere Zeichenfolgenargumente des DOS-Befehls findstr

Mehrere Zeichenfolgenargumente des DOS-Befehls findstr
findstr /v "black"  File1.txt

Der obige DOS-Befehl zeigt den Inhalt von „File1.txt“ an, der nicht mit der Zeichenfolge „black“ übereinstimmt.

Wie ändere ich diesen Befehl, wenn ich die Wörter „schwarz“ und „weiß“ filtern muss?

Antwort1

Wie filtere ich die Wörter „schwarz“ und „weiß“?

Der folgende Befehl zeigt alle Zeilen an, die enthalten"black" NOCH "white":

findstr /v "black white" blackwhite.txt

Der folgende Befehl zeigt alle Zeilen an, die enthalten"black" ODER "white":

findstr "black white" blackwhite.txt

Der folgende Befehl zeigt alle Zeilen an, die enthaltenGENAU "black white":

findstr /c:"black white" blackwhite.txt

Der folgende Befehl zeigt alle Zeilen an, die enthalten"black" UND "white":

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

Anmerkungen:

  • Wenn die Suchzeichenfolge mehrere durch Leerzeichen getrennte Wörter enthält, findstrwerden Zeilen zurückgegeben, die eines der beiden Wörter enthalten (ODER).

  • Eine wörtliche Suche ( /C:string) kehrt dieses Verhalten um und ermöglicht die Suche nach einer Phrase oder einem Satz. Eine wörtliche Suche ermöglicht auch die Suche nach Satzzeichen.

Beispiel-Datendatei (blackwhite.txt):

red
black
white
blue
black white
black and white

Beispielausgabe:

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

Weitere Informationen

Antwort2

Wenn Sie alle Zeilen mit den Wörtern „schwarz“ oder „weiß“ anzeigen müssen, entfernen Sie das /v in Ihrem Befehl.

Versuchen Sie: findstr white File1.txt oder findstr black File1.txt oder findstr "black white" File1.txt

Der Operand /V druckt alle Zeilen, die Ihren Suchbegriff NICHT enthalten.

Geben Sie findstr /? ein, um weitere Informationen zur Verwendung von findstr zu erhalten.

Antwort3

Ich wollte noch ergänzen, wie man findstr mit stdout unter Windows für mehrere Suchvorgänge verwendet.

So listen Sie nur die Namen der Netzwerkschnittstellen und deren IP-Adressen auf:

ipconfig /all | findstr /i /L /c:"Ethernet" /c:"IPv4"

Die Microsoft-DokumentationDetails zu jedem Parameter

  • /iIgnoriert die Groß-/Kleinschreibung der Zeichen bei der Suche nach der Zeichenfolge.
  • /lVerarbeitet Suchzeichenfolgen wörtlich.
  • /c:<string> Verwendet den angegebenen Text als wörtliche Suchzeichenfolge.

Antwort4

Hier ist ein weiteres Beispiel, bei dem eine andere Ausgabemethode verwendet wird, nicht nur eine direkte Dateisuche. Überprüfen Sie beispielsweise den Netzwerkportstatus, wobei port = 98765und status = ESTABLISHED or LISTENING.

Dies führt beispielsweise alle fünf Sekunden ein Netstat aus, leitet dann die Netstat-Ausgabe an ein FIND weiter (könnte auch verwenden FINDSTR) und leitet diese Ergebnisse anschließend an findstr weiter, um zu filtern, wenn sich der Port in einem bestimmten Zustand befindet (in diesem Fall ESTABLISHED or LISTENING).

netstat -an 5 | find "98765" | findstr "ESTABLISHED LISTENING"

TCP    192.168.123.456:57349     10.10.12.34:98765 ESTABLISHED

verwandte Informationen