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

Компьютерный форум 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 | Цитировать


вместо /system/etc будет стоять %%a (цикл из другого файла). В зависимости от того найдено ли слово, будет выполняться условие
ФУх.. Ну так хоть объяснил?
Желательно использовать bat команды чтобы получить код возврата ошибки

x0r, Iska, greg zakharov, Весь геморой в том, что должен быть ТОЧНЫЙ поиск
возьму другой пример: /system/app
Его необходимо найти, но вместо него найдется всякий хлам:
/system/app/тырыпыры
/system/app/lib
и тд.
А мне нужной найти что я написал /system/app, он может быть и не быть записан в файл

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



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

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


Забанен


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

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


Вам уже указали на точный поиск. Вам нужно:
1) узнать есть ли строка /system/etc в файле
2) в строке после обозначенных выше символов больше ничего не встречается, т.е. /system/etc или /system/app и все, - далее прочие строки
3) если строки /system/etc нет, вернуть некий код ошибки
Так? Или предпочтете воспользовоться звонком другу не так?

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


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


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

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


greg zakharov, 2) встречаеться /system/etc/sensor u: object_r:system_sensor_data_file:s0
жирным выделил

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


Забанен


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

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


Iska, надеюсь Вы не будете против, если я пополню Ваш клуб случайно облысевших?

vngreez@vk, пардон, но искать тогда что и что в данном случае может быть "точным поиском"? Вам нужно еще "хвост" в этой строке захватить регулярным выражением?

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


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


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

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


greg zakharov, да

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


Забанен


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

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


То есть, допустим, файл:
Код: Выделить весь код
...
/system/bin/vtservice u:object_r:vtservice_exec:s0 
/system/bin/hotknot_native_service u:object_r:hotknot_native_exec:s0 
/system/bin/teei_daemon u:object_r:teei_daemon_exec:s0 
/system/bin/init_thh u:object_r:init_thh_service_exec:s0 
/system/etc u:object_r:system_sensor_data_file:s0
/system/bin/md_monitor u:object_r:md_monitor_exec:s0 
/system/bin/mvg_spoh u:object_r:mvg_spoh_exec:s0 
/system/bin/fpserver u:object_r:fpserver_exec:s0 
/system/app u:object_r:system_sensor_data_file:s0
...
Тогда:
Код: Выделить весь код
@echo off
  setlocal enabledelayedexpansion
    set "re=/system/# u:object_r:system_sensor_data_file:s0"
    for %%i in (etc app) do (
      >nul findstr /l /c:"!re:#=%%i!" file.txt&&echo:%%i found
    )
  endlocal
exit /b
Так?

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

x0r x0r вне форума

Забанен


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

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


фигня кокая-то... может это багоглюк в традициях M$
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 
/system/app/qweee
/system/app/lib
/system/app/qewqeqwe
/system/app
1 если искать /system/etc
Код: Выделить весь код
findstr /X /C:"/system/etc" file.txt
/system/etc
т.е. находит.

2 если искать /system/app
Код: Выделить весь код
findstr /X /C:"/system/app" file.txt
т.е. ненаходит нифига ?:

3 если сделать через type или sort
Код: Выделить весь код
type file.txt | findstr /X /C:"/system/app"
/system/app

sort file.txt | findstr /X /C:"/system/app"
/system/app

sort file.txt | findstr /X /C:"/system/etc"
/system/etc
то находит всегда. Это чего, дело в алфавите, в порядке расположения строк для findstr чтоле?!

Последний раз редактировалось x0r, 22-06-2017 в 18:43. Причина: ошибки


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

x0r x0r вне форума

Забанен


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

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


upd: дошло. дело в том, что это последняя строка и там EOF. мдаааа... так что всё равно, это считай баг опции findstr /X : если искомое выражение стоит последним в файле, то не будет найдено.

Последний раз редактировалось x0r, 22-06-2017 в 20:11.

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

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


Ветеран


Contributor


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

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


vngreez@vk, строка вида
/system/etc тырыпыры
должна быть найдена, или она ошибочная? Тогда почему?

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

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

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


Ветеран


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

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


Цитата greg zakharov:
Iska, надеюсь Вы не будете против, если я пополню Ваш клуб случайно облысевших? »
Легко!

Цитата:
Вся королевская конница,
Вся королевская рать…

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



Компьютерный форум 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




 
Переход