Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - findstr точный поиск

Ответить
Настройки темы
CMD/BAT - findstr точный поиск

Новый участник


Сообщения: 39
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: vngreez@vk
Дата: 21-06-2017
имееться файл file.txt, вот его содержимое:
============
/system/bin/mtkmal u: object_r:mtkmal_exec:s0
/system/bin/wifi2agps u: object_r:wifi2agps_exec:s0
/system/bin/wmt_loader u: object_r:wmt_loader_exec:s0
/system/bin/xlog u: object_r:xlog_exec:s0
/system/bin/sbchk u: object_r:sbchk_exec:s0
/system/bin/OperaMaxSystem u: object_r:tunman_exec:s0
/system/etc/sensor u: object_r:system_sensor_data_file:s0
/system/vendor/bin/pvrsrvctl u: object_r:pvrsrvctl_exec:s0
/system/xbin/BGW u: object_r:BGW_exec:s0
/system/xbin/mnld u: object_r:mnld_exec:s0
/system/bin/md_ctrl u: object_r:md_ctrl_exec:s0
/system/bin/cmddumper u: object_r:cmddumper_exec:s0
============
findstr "^/system/etc\>" file.txt
Данная команда должна найти текст /system/etc.
file.zip
Она работает некорректно, вместо указанного выше текста, находиться /system/etc/sensor u: object_r:system_sensor_data_file:s0

Как это исправить?
(где: u: object_r:... пробелов не должно быть, поставил из-за того что появляется смайл )

Отправлено: 20:53, 21-06-2017

 

Новый участник


Сообщения: 39
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Iska, greg zakharov, Мне нужен точный поиск слова в тексте, вот и вся задача.
greg zakharov, извлекать строку по подстроке мне не нужно

Отправлено: 11:35, 22-06-2017 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


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

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

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

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

посмотрим что вы ответите
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:00, 22-06-2017 | #12


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата vngreez@vk:
Мне нужен точный поиск слова в тексте, вот и вся задача. »
Это не задача. Это выбранное Вами решение для неизвестной нам задачи. Например, это:
Код: Выделить весь код
type file.txt | findstr.exe /l /c:"/system/etc"
(прав был коллега greg zakharov, ой, прав — таки «/l» ) — находит эту подстроку. Если Вас интересует совпадение только со всей строкой в целом, а не с любой её частью — тогда указанное коллегой greg zakharov выше:
Код: Выделить весь код
type file.txt | findstr.exe /r /c:"^/system/etc$"
и в том, и в другом случае по коду возврата мы можем сделать вывод об успешности поиска.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:04, 22-06-2017 | #13


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


vngreez@vk,
Цитата Операция Ы и другие приключения Шурика:
Огласите весь список, пожалуйста!
Iska, У меня зародилось подозрение, что задача стоИт так:
Есть файл со строками вида "строка1 строка2"
Надо определить, есть ли в файле строка, где "строка1" имеет определённый вид.
Если это так, то решение Iska примет вид:
Код: Выделить весь код
type file.txt | findstr.exe /l /N /c:"/system/etc "
Всего-то пробел добавить в конце искомой подстроки.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 22-06-2017 в 14:31.


Отправлено: 14:25, 22-06-2017 | #14


Новый участник


Сообщения: 39
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Iska, В первом примере снова находиться другая строка, во втором она не работает, потому что текст не закачивается, а присутствует еще текст:
/system/vendor/bin/pvrsrvctl u: object_r:pvrsrvctl_exec:s0
alpap, Нужен именно первый вариант

Отправлено: 14:29, 22-06-2017 | #15


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата vngreez@vk:
Iska, В первом примере снова находиться другая строка, »
  1. Какая находится?
  2. Какая должна по Вашему мнению находиться?

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

Отправлено: 14:34, 22-06-2017 | #16

x0r x0r вне форума

Забанен


Сообщения: 795
Благодарности: 137

Профиль | Цитировать


Код: Выделить весь код
=>grep -o "/system/etc" file.txt
/system/etc
он хочет ;-)
Ну дык и возьми grep для этого. findstr этого вродеб не умеет.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:57, 22-06-2017 | #17


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


x0r, да хоть perl'ом:
Код: Выделить весь код
$ perl -ne "print $1 if /^(\/system\/etc)/" file.txt
/system/etc
Уже писал несколькими постами ранее, что findstr - не grep (и уж тем более не perl).
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:06, 22-06-2017 | #18


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


x0r — это шесть!
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:22, 22-06-2017 | #19

x0r x0r вне форума

Забанен


Сообщения: 795
Благодарности: 137

Профиль | Цитировать


greg zakharov, ага, есть такое. я пропустил.
Хотя и действительно неясно: зачем искать только то, что и так известно - найти "/system/etc" чтоб взять "/system/etc" ... Можнож сразу взять /system/etc (в переменную) и ничего нигде не искать.

Может тебе это надо:
Код: Выделить весь код
>findstr /X "^/system/etc" file.txt
содержание файла file.txt
Код: Выделить весь код
/system/bin/mtkmal u: object_r:mtkmal_exec:s0
/system/bin/wifi2agps u: object_r:wifi2agps_exec:s0
/system/bin/wmt_loader u: object_r:wmt_loader_exec:s0
/system/etc
/system/bin/xlog u: object_r:xlog_exec:s0
/system/bin/sbchk u: object_r:sbchk_exec:s0
/system/bin/OperaMaxSystem u: object_r:tunman_exec:s0
/system/etc/sensor u: object_r:system_sensor_data_file:s0
/system/vendor/bin/pvrsrvctl u: object_r:pvrsrvctl_exec:s0
/system/xbin/BGW u: object_r:BGW_exec:s0
/system/xbin/mnld u: object_r:mnld_exec:s0
/system/bin/md_ctrl u: object_r:md_ctrl_exec:s0
/system/bin/cmddumper u: object_r:cmddumper_exec:s0
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:15, 22-06-2017 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - findstr точный поиск

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Google Play будет показывать точный размер обновлений приложений OSZone News Новости информационных технологий 0 03-05-2016 12:30
CMD/BAT - [решено] findstr помощь firstarey Скриптовые языки администрирования Windows 26 12-10-2013 12:17
CMD/BAT - [решено] Помогите с findstr dima05605 Скриптовые языки администрирования Windows 15 28-10-2012 19:49
Как определить точный тип поломки видеокарты? Kibor_G Видеокарты 9 04-11-2010 21:23
Как узнать точный(в процентах) заряд батарей 181294 Мобильные ОС, смартфоны и планшеты 3 06-09-2009 17:26




 
Переход