Поиск в бинарных файлах по фрагменту текста
Модератор: Bizdelnick
-
minoru-kun
- Сообщения: 621
- ОС: Debian GNU/Linux
Поиск в бинарных файлах по фрагменту текста
Задача.
Дано: куча файлов в формате Microsoft Office DOC; OpenOffice ODT (всего - около 2000).
Требуется: найти все файлы, содержащие заданный кусок текста.
Стандартным kfind пользоваться не рекомендовать, ибо уже пробовали, он - не помогает. Для DOC оказалась полезной виндовая программа AVFind under WINE, но для ODT она непригодна...
Дано: куча файлов в формате Microsoft Office DOC; OpenOffice ODT (всего - около 2000).
Требуется: найти все файлы, содержащие заданный кусок текста.
Стандартным kfind пользоваться не рекомендовать, ибо уже пробовали, он - не помогает. Для DOC оказалась полезной виндовая программа AVFind under WINE, но для ODT она непригодна...
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Поиск в бинарных файлах по фрагменту текста
а beagle не подходит?
-
wi:
- Сообщения: 535
- Статус: wi love linux
- ОС: Open SuSE 11.0
Re: Поиск в бинарных файлах по фрагменту текста
А яндекс поиск 2.0 (теперь банановый) под wine не работает?
%s
-
stdds
- Сообщения: 886
- ОС: Mandriva 2008 / 2007 Free
Re: Поиск в бинарных файлах по фрагменту текста
Кстати кто нибудь знает как в текстовом режиме искать файлы по содержимому?
"Нету смысла искать смысл там где нет ни какого смысла это бесмыслица ее все равно не осмыслить!" Burhan Haldun (Бесмысленые высказывания)
-
Aectann
- Бывший модератор
- Сообщения: 3491
- Статус: ...
- ОС: OS X, GNU_и_не_только/Linux
-
TwisT
- Сообщения: 265
- ОС: Debian
Re: Поиск в бинарных файлах по фрагменту текста
Чувствую что в меня полетят помидоры и т.п.
НО полазив по форуму убедился, что установленая мандрива затормаживает развитие молодого линуксоида
так сказать не способствует консольному развитию IMHO, токо по кнопкам мышой и все, весь Linux
НО полазив по форуму убедился, что установленая мандрива затормаживает развитие молодого линуксоида
так сказать не способствует консольному развитию IMHO, токо по кнопкам мышой и все, весь Linux
Linux user #432536.
-
eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: Поиск в бинарных файлах по фрагменту текста
Конечно закидают. К чему в нормальной теме такое писать?
В дисгармонии со вселенной.
-
BlackStar
- Сообщения: 1338
- Статус: We are all Kosh
- ОС: Fedora 10
Re: Поиск в бинарных файлах по фрагменту текста
А чем тебе beagle и tracker не угодили?
LightLang Team
-
stdds
- Сообщения: 886
- ОС: Mandriva 2008 / 2007 Free
Re: Поиск в бинарных файлах по фрагменту текста
ну да греп !
чета перечитал кучу инфы но ни фига не понял.
как всетаки? тут же ведь и find должен учавствовать?
А разве в мандриве плохая консоль?
"Нету смысла искать смысл там где нет ни какого смысла это бесмыслица ее все равно не осмыслить!" Burhan Haldun (Бесмысленые высказывания)
-
wi:
- Сообщения: 535
- Статус: wi love linux
- ОС: Open SuSE 11.0
Re: Поиск в бинарных файлах по фрагменту текста
А разве новички ей пользуются?
Мне вообще не нравится путь линуха с точки зрания начинающего пользователя. Я уже как-то встречал установщик программ. Так всю изюминку линуха превратят в мусор. Люди перестают понимать основы, на которых держится все.
Надо делать руками в текстах, а не ясты использовать, конторпанели и т.п. Только после этого придет понимание.
%s
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
-
wi:
- Сообщения: 535
- Статус: wi love linux
- ОС: Open SuSE 11.0
Re: Поиск в бинарных файлах по фрагменту текста
Упрощенный гном -- применение изменеий налету
Далее избавление от консоли в подсознании?
Я о них не знал -- не приходилось
%s
-
stdds
- Сообщения: 886
- ОС: Mandriva 2008 / 2007 Free
Re: Поиск в бинарных файлах по фрагменту текста
wi: писал(а): ↑19.05.2007 00:41А разве новички ей пользуются?
Мне вообще не нравится путь линуха с точки зрания начинающего пользователя. Я уже как-то встречал установщик программ. Так всю изюминку линуха превратят в мусор. Люди перестают понимать основы, на которых держится все.
Надо делать руками в текстах, а не ясты использовать, конторпанели и т.п. Только после этого придет понимание.
Ну если ты такой весь в понимании
"Нету смысла искать смысл там где нет ни какого смысла это бесмыслица ее все равно не осмыслить!" Burhan Haldun (Бесмысленые высказывания)
-
wi:
- Сообщения: 535
- Статус: wi love linux
- ОС: Open SuSE 11.0
Re: Поиск в бинарных файлах по фрагменту текста
Да ну, какой же я уч 
Я только учусь. Но вообще еще можно diff . Немного другое, но тоже может пригодиться.
Я только учусь. Но вообще еще можно diff . Немного другое, но тоже может пригодиться.
%s
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Поиск в бинарных файлах по фрагменту текста
ОК.
1) grep умеет искать содержимое в каком-то конкретном файле
самый простой вариант использования grep <то что ищем> <то где ищем> . Например:
diesel@gfl211-04:~$ grep diesel /etc/passwd
diesel:x:1000:1000:,,,:/home/diesel:/bin/bash
в качестве того что ты ищешь могут выступать регулярные выражения. когда надо регулярные выражения применяют опции -e (обычные) -E(расширенные) -P(очень иногда, перловые). иногда важно делать поиск независмый от регистра. для этого применяют опцию -i:
Код: Выделить всё
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
dictd:x:103:103::/var/lib/dictd:/bin/false
diesel:x:1000:1000:,,,:/home/diesel:/bin/bash
diesel@gfl211-04:~$ grep -iE '^d' /etc/passwd
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
Debian-exim:x:102:102::/var/spool/exim4:/bin/false
dictd:x:103:103::/var/lib/dictd:/bin/false
diesel:x:1000:1000:,,,:/home/diesel:/bin/bashgrep умеет искать не только в одном файле. опция -r дает рекурсивный поиск по директории, т.е.
grep -r <что ищим> /path/to/dir
для этой опции могут быть полезны опции -I - игнорить бинарные файлы, -l показать _только_ файлы в которых найдено(без того что найдено), -h не показывать имен файлов.
прикольные опции еще -v - "инвертировать поиск" т.е. показывать все что не подходит, -o показать только текст который подходит под то что ищешь(полезно для регулярных выражений).
2) find поиск по именам и атрибутам файлов, обычно так:
find <где искать> [-iname <маска файла для поиска> -type <тип файл, директория, линка итп> ... еще несколько] -exec [здесь команда которую надо исполнить над найденным файлом, имя найденного файла замещают на {}; команда должна заканчиваться точкой с запятой которая экранируется от шелла:] \;
дурацкий пример:
find -iname "*.html" -exec grep '<form' {} \;
с тем чтобы сочетать find и греп в таком контексте сталкивался крайне редко.
примерно так :-) есс-но это работает на _текстовых_ файлах. для *.doc и прочих бинарных форматов надо извращаться.
-
stdds
- Сообщения: 886
- ОС: Mandriva 2008 / 2007 Free
Re: Поиск в бинарных файлах по фрагменту текста
diesel писал(а): ↑19.05.2007 01:53ОК.
1) grep умеет искать содержимое в каком-то конкретном файле
самый простой вариант использования grep <то что ищем> <то где ищем> . Например:
diesel@gfl211-04:~$ grep diesel /etc/passwd
diesel:x:1000:1000:,,,:/home/diesel:/bin/bash
в качестве того что ты ищешь могут выступать регулярные выражения. когда надо регулярные выражения применяют опции -e (обычные) -E(расширенные) -P(очень иногда, перловые). иногда важно делать поиск независмый от регистра. для этого применяют опцию -i:
Код: Выделить всё
daemon:x:1:1:daemon:/usr/sbin:/bin/sh dictd:x:103:103::/var/lib/dictd:/bin/false diesel:x:1000:1000:,,,:/home/diesel:/bin/bash diesel@gfl211-04:~$ grep -iE '^d' /etc/passwd daemon:x:1:1:daemon:/usr/sbin:/bin/sh Debian-exim:x:102:102::/var/spool/exim4:/bin/false dictd:x:103:103::/var/lib/dictd:/bin/false diesel:x:1000:1000:,,,:/home/diesel:/bin/bash
grep умеет искать не только в одном файле. опция -r дает рекурсивный поиск по директории, т.е.
grep -r <что ищим> /path/to/dir
для этой опции могут быть полезны опции -I - игнорить бинарные файлы, -l показать _только_ файлы в которых найдено(без того что найдено), -h не показывать имен файлов.
прикольные опции еще -v - "инвертировать поиск" т.е. показывать все что не подходит, -o показать только текст который подходит под то что ищешь(полезно для регулярных выражений).
2) find поиск по именам и атрибутам файлов, обычно так:
find <где искать> [-iname <маска файла для поиска> -type <тип файл, директория, линка итп> ... еще несколько] -exec [здесь команда которую надо исполнить над найденным файлом, имя найденного файла замещают на {}; команда должна заканчиваться точкой с запятой которая экранируется от шелла:] \;
дурацкий пример:
find -iname "*.html" -exec grep '<form' {} \;
с тем чтобы сочетать find и греп в таком контексте сталкивался крайне редко.
примерно так :-) есс-но это работает на _текстовых_ файлах. для *.doc и прочих бинарных форматов надо извращаться.
Вот так бы вот сразу бы вот
"Нету смысла искать смысл там где нет ни какого смысла это бесмыслица ее все равно не осмыслить!" Burhan Haldun (Бесмысленые высказывания)
-
wi:
- Сообщения: 535
- Статус: wi love linux
- ОС: Open SuSE 11.0
Re: Поиск в бинарных файлах по фрагменту текста
Так сразу есть в man 
Предлагаю не отвечать с тамими большими цитатам.
Предлагаю не отвечать с тамими большими цитатам.
%s
-
stdds
- Сообщения: 886
- ОС: Mandriva 2008 / 2007 Free
Re: Поиск в бинарных файлах по фрагменту текста
Читал я этот ман ни понятно нифига, был бы на китайском может быть понял бы
"Нету смысла искать смысл там где нет ни какого смысла это бесмыслица ее все равно не осмыслить!" Burhan Haldun (Бесмысленые высказывания)
-
wi:
- Сообщения: 535
- Статус: wi love linux
- ОС: Open SuSE 11.0
Re: Поиск в бинарных файлах по фрагменту текста
Кстати, чтобы получить ман, можно в firefox ввести адрес man grep (нужен инет).
Попробуй почитать здесь. (шутка, не оффтоп)
Попробуй почитать здесь. (шутка, не оффтоп)
%s
-
stomp
- Сообщения: 721
- ОС: Debian GNU
Re: Поиск в бинарных файлах по фрагменту текста
Попробуй почитать здесь. (шутка, не оффтоп)
Кстати, чтобы получить ман, можно в firefox ввести адрес man grep (нужен инет).
Класс! Жаль только что не все на русском!