CMD/BAT - findstr точный поиск

Ответить
 • Просмотры: 1
Аватара пользователя
vngreez@vk

Re: CMD/BAT - findstr точный поиск

Сообщение vngreez@vk »

Iska, greg zakharov, в моем коде присутствует цикл (for /f) и вместо /system/etc (я использую этот вариант в качестве примера) может быть любое значения. Но из-за этого не хочет нормальна работать код.

Вместо system/etc может найтись любый значения: /system/etc/sensor, /system/etc/lib.... Хотя я так не задумывал

Может есть все таки способ?
Аватара пользователя
Iska

Re: CMD/BAT - findstr точный поиск

Сообщение Iska »

Цитата vngreez@vk:



Вместо system/etc может найтись любый значения: /system/etc/sensor, /system/etc/lib.... Хотя я так не задумывал
CMD/BAT - findstr точный поиск




давайте по полочкам



если у вас задача найти в тексте именно "/system/etc", хотя такой строки там сейчас и нет, то сделать это просто, но сразу напрашивается вопрос
Цитата Iska:



Вопрос только — зачем извлекать из строки то, что и так известно?
CMD/BAT - findstr точный поиск




, в данном случае искать

естественно и с учетом того что в тексте есть строка СОДЕРЖАЩАЯ в себе "/system/etc" вам стали предлагать решения по поиску таких строк и уже с учетом ваших желаний еще и извлекать эту часть из строки, но и это не то, начинаем телепатировать



вариант1

в тексте есть несколько строк, содержащих "/system/etc" и только одна строка чисто "/system/etc" и ее надо найти



вариант2

в тексте есть несколько строк, содержащих "/system/etc", но строк именно "/system/etc", например несколько, найти первую встретившуюся или последнюю или определенную по счету



посмотрим что вы ответите
Аватара пользователя
Iska

Re: CMD/BAT - findstr точный поиск

Сообщение Iska »

Цитата vngreez@vk:



Мне нужен точный поиск слова в тексте, вот и вся задача.
CMD/BAT - findstr точный поиск




Это не задача. Это выбранное Вами решение для неизвестной нам задачи. Например, это:



Код:

Код: Выделить всё

type file.txt | findstr.exe /l /c:"/system/etc"

(прав был коллега greg zakharov, ой, прав — таки «/l» Изображение) — находит эту подстроку. Если Вас интересует совпадение только со всей строкой в целом, а не с любой её частью — тогда указанное коллегой greg zakharov выше:



Код:

Код: Выделить всё

type file.txt | findstr.exe /r /c:"^/system/etc$"

и в том, и в другом случае по коду возврата мы можем сделать вывод об успешности поиска.
Аватара пользователя
alpap

Re: CMD/BAT - findstr точный поиск

Сообщение alpap »

vngreez@vk,
Цитата Операция Ы и другие приключения Шурика:



Огласите весь список, пожалуйста!



Iska, У меня зародилось подозрение, что задача стоИт так:

Есть файл со строками вида "строка1 строка2"

Надо определить, есть ли в файле строка, где "строка1" имеет определённый вид.

Если это так, то решение Iska примет вид:

Код:

Код: Выделить всё

type file.txt | findstr.exe /l /N /c:"/system/etc "

Всего-то пробел добавить в конце искомой подстроки.
Аватара пользователя
Iska

Re: CMD/BAT - findstr точный поиск

Сообщение Iska »

Iska, В первом примере снова находиться другая строка, во втором она не работает, потому что текст не закачивается, а присутствует еще текст:

/system/vendor/bin/pvrsrvctl u: object_r:pvrsrvctl_exec:s0

alpap, Нужен именно первый вариант
Аватара пользователя
megaloman

Re: CMD/BAT - findstr точный поиск

Сообщение megaloman »

Цитата vngreez@vk:



Iska, В первом примере снова находиться другая строка,
CMD/BAT - findstr точный поиск




Какая находится?Какая должна по Вашему мнению находиться?

И, может быть, Вы таки озвучите Вашу задачу? Повторяю: не выбранное Вами решение, а задачу. Ибо, если как минимум пять человек не могут толком понять, чего Вы хотите — значит, явно что-то не так.
Аватара пользователя
vngreez@vk

Re: CMD/BAT - findstr точный поиск

Сообщение vngreez@vk »

Iska, В первом примере снова находиться другая строка, во втором она не работает, потому что текст не закачивается, а присутствует еще текст:

/system/vendor/bin/pvrsrvctl u: object_r:pvrsrvctl_exec:s0

alpap, Нужен именно первый вариант
Аватара пользователя
vngreez@vk

Re: CMD/BAT - findstr точный поиск

Сообщение vngreez@vk »

x0r, да хоть perl'ом:



Код:

Код: Выделить всё

$ perl -ne "print $1 if /^(\/system\/etc)/" file.txt
/system/etc

Уже писал несколькими постами ранее, что findstr - не grep (и уж тем более не perl).
Аватара пользователя
x0r

Re: CMD/BAT - findstr точный поиск

Сообщение x0r »

Код:

Код: Выделить всё

=>grep -o "/system/etc" file.txt
/system/etc

он хочет ;-)

Ну дык и возьми grep для этого. findstr этого вродеб не умеет.
Аватара пользователя
greg zakharov

Re: CMD/BAT - findstr точный поиск

Сообщение greg zakharov »

x0r, да хоть perl'ом:



Код:

Код: Выделить всё

$ perl -ne "print $1 if /^(\/system\/etc)/" file.txt
/system/etc

Уже писал несколькими постами ранее, что findstr - не grep (и уж тем более не perl).
Ответить

Вернуться в «Скриптовые языки администрирования Windows»