View previous topic :: View next topic |
Author |
Message |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Fri Jun 27, 2008 19:47 Post subject: Поиск по списку |
|
|
Мне тут понадобилось провести достаточно экзотический поиск. Упрощая задачу: найти файлы, имена которых содержат символы "ab1", потом то же - "cd3", потом "e87f", и т. д. Причем строки ab1, cd3, e87f занесены в текстовый файл. Иными словами - провести длинный ряд взаимно независимых поисков по списку из файла.
Задумал уж написать скрипт. Это хлопотно, но решаемо. Однако:
1) Среди кучи поисковых утилит есть ли такая, которая производит поиск по списку?
2) Если есть, то не будут ли любезны благородные доны кинуть в меня ссылкой?
3) Если нет, то не послать ли запрос Гислеру? Ведь сделал же он переименование по списку! _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
VadiMGP
Joined: 21 Mar 2007 Posts: 1625
|
(Separately) Posted: Fri Jun 27, 2008 21:20 Post subject: |
|
|
Меня смутило выражение "ряд взаимно независимых поисков". Если я правильно понял задачу, то надо взять все строки из текстового файла (ab1, cd3, e87f и т.д) каждую заключить в звездочки и сцепить все это в одну строку, чтобы получилось И эту строку использовать в тотале для поиска. В этом состоит задача?
Или нужно провести несколько разных поисков и иметь несколько результирующих списков файлов? |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Sat Jun 28, 2008 00:22 Post subject: |
|
|
Quote: | Или нужно провести несколько разных поисков и иметь несколько результирующих списков файлов? | В том-то и дело. И результаты тоже взаимно независимы. Разве что следовало добавить: "однотипных поисков". _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
VadiMGP
Joined: 21 Mar 2007 Posts: 1625
|
(Separately) Posted: Sat Jun 28, 2008 02:42 Post subject: |
|
|
Нда, ну ты и задачи ставишь, барин. ©
Это значит у Гислера надо просить серию поисков, причем, либо результат каждого поиска должен идти в свой таб, либо должен быть специальный постпроцессинг для обработки возможных дубликатов. Нереально, на мой взгляд.
А вот со скриптом вроде все просто. Читаешь файл и для каждой строчки запускаешь grep c перенаправлением результатов в файл(ы). В чем проблема-то, ты, чай, опытный скриптограф.
Или я чего-то недопонял? |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Sat Jun 28, 2008 17:06 Post subject: |
|
|
Да нет, все правильно, разве что "постпроцессинг для обработки возможных дубликатов" - пижонство.
Grep - функция хорошая, только я под Юниксом последний раз сидел... э-э-э... девять лет назад. Так что со скриптом придется попотеть. Я почему спросил именно здесь, на этом форуме - хотелось прикрутить этот поиск к ТС. Да, в идеале результаты открывать в отдельной вкладке.
Так что если такая задача встанет еще раз - засяду за скриптопись. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
VadiMGP
Joined: 21 Mar 2007 Posts: 1625
|
(Separately) Posted: Sat Jun 28, 2008 23:07 Post subject: |
|
|
Обработка дубликатов - это, вообще-то, не моя прихоть, а вынужденная мера для ТС. ТС обязан знать, что в списке есть дубликаты и учитывать это при копировании, удалении и т.д.
Но не суть, бог с ним.
Тут на самом деле, даже греп не нужен, ищем-то только по имени файла! (кстати, под виндой полным полно разных грепов, как собак нерезаных) В VBScript я не силен, я все больше по старинке батничками балуюсь. Все, что нужно это два батника - основной и вспомогательный.
Основной (параметром получает файл со списком шаблонов)
Code: | for /F %%i in (%1) do for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%a:\nul call ssd.bat %%a %%i |
Вспомогательный (ssd.bat)
Code: | pushd %1
cd\
dir *%2* /S /B
popd | Честно предупреждаю - сам я это не запускал, ибо нету сил моих дамских ждать пока эта марахайка все диски прошерстит, но в принципе, должно работать. Тупо, но железно. |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Mon Jun 30, 2008 12:12 Post subject: |
|
|
Большое спасибо, но... я столько не выпью.
Это я к тому, что разбираться и тестировать батнички придется долго и мучительно, и без поллитры там делать нечего. Все, пошел в Яндексе искать, что такое, например, "pushd"...
Грепов под виндой, понятное дело, хоть пруд пруди. Но ищут ли они по списку...
Есть утилита SaR (Search And Replace), но она кушает файлы типа простеньких скриптов для однократного поиска...
Еще раз спасибо. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|