findstr Аргумент множинних рядків Command DOS


21
findstr /v "black"  File1.txt

Над командою DOS відображатиметься вміст 'File1.txt', який не відповідає рядку "чорний".

Як змінити цю команду, якщо мені потрібно відфільтрувати слова "чорний" та "білий"?


2
findstrІнструмент не є частиною MS-DOS. Він поставляється з Windows (XP +?). Я думаю, ви маєте на увазі "інструмент командного рядка" замість "команда DOS".
Мішель де Руйтер

Відповіді:


30

Як я фільтрую слова "чорний" та "білий"?

Наступна команда відобразить усі рядки, що містять "black" NOR "white" :

findstr /v "black white" blackwhite.txt

Наступна команда відобразить усі рядки, що містять "black" АБО "white" :

findstr "black white" blackwhite.txt

Наступна команда відобразить усі рядки, що містять ТОЧНО "black white ":

findstr /c:"black white" blackwhite.txt

Наступна команда відобразить усі рядки, що містять "black" І "white" :

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

Примітки:

  • Коли рядок пошуку містить кілька слів, розділених пробілами, то findstrповертаються рядки, що містять або слово (АБО).

  • Буквальний пошук ( /C:string) поверне цю поведінку і дозволить шукати фразу чи пропозицію. Буквальний пошук також дозволяє шукати розділові знаки.

Приклад файлу даних (blackwhite.txt):

red
black
white
blue
black white
black and white

Приклад виводу:

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

Подальше читання


1
Дуже цікаво .. Я думаю, що це буде пошук білого І чорногоfindstr "white" File2.txt | findstr "black"
барлоп

ну, оскільки у нас є НОР, тож існує перестановка, яку ми могли б вважати відсутніми. NAND. Ще один, який ми могли б вважати зниклим, - це XOR
барлоп

@barlop Я не можу зрозуміти, як зробити NAND чи XOR: / Я знаю, яким повинен бути вихід, але як доїхати ...
DavidPostill

можливо, не існує приємного швидкого способу, можливо, це буде пакетна перевірка файлів errorlevel, можливо, краще використовувати інший інструмент, якщо це зробити, схоже, що grep не може. Але awk може зробити зовсім небагато або звичайно perl unix.stackexchange.com/questions/177513/…
barlop


0

Якщо вам потрібно відобразити всі рядки зі словами "чорний" або "білий", тоді позбудьтесь / v у вашій команді.

Спробуйте: findstr білий File1.txt або findstr чорний File1.txt або findstr "чорно-білий" File1.txt

Операнд / V надрукує всі рядки, які НЕ містять вашу пошукову рядок.

Введіть findstr /? для отримання додаткової інформації про те, як використовувати findstr.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.