Индексация содержания текстового файла с запросом командной строки

Я делаю ежедневные заметки в файле простого текста, маркированном датой в формате YYYYMMDD. Эти файлы являются не больше, чем 100 строками долго и записаны в формате стиля блога.

Я хотел бы смочь поиск эти файлы, как будто они были сообщениями в блоге, индексированными Google, с некоторым запросом фразы, возвращая самые соответствующие/недавние имена файлов даты, с отрывком, содержащим соответствующую часть.

Идеально это было бы что-то вроде этого:

#searchindex "laptop no sound"

возвраты:

20100909.txt:

... звук ноутбука не работает...

20100101.txt

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

и т. д. и т. п.

Я работаю над платформой Linux (Debian с GNOME). Я посмотрел на Гончую и Средство отслеживания, но они просто кажутся полным излишеством для того, что я хочу.

Править: Много предложений включают grep, но я хотел бы что-то немного более мощное, чем это, принимая во внимание близость ключевых слов, даты, и т.д. Многие из этих файлов будут иметь несколько подобные ключевые слова, таким образом, я буду получать слишком много хитов, использующих просто grep. Я не возражаю против дополнительных издержек индексации.

3
задан 08.04.2017, 06:50

3 ответа

Можно использовать grep в a bash функция для этого:

function searchindex ()
{
    if [ "$#" -gt 0 ] ; then
        ls -t | xargs -L1 grep -H -C3 -- `echo "$@" | sed 's/ /\\\|/g'`
    fi
}

Где -C3 количество строк контекста, если Вы хотите просто подобранную строку, можно удалить его.

1
ответ дан 08.12.2019, 01:43

Был бы плоскость grep делать то, что Вы хотите?

$ egrep "laptop|sound" *txt
20100101.txt:sound is too loud... debating what laptop to buy
20100505.txt:the sound of silence
20100606.txt:I just bought a new laptop
20100909.txt:laptop sound isn't working

$ egrep "laptop.*sound|sound.*laptop" *txt
20100101.txt:sound is too loud... debating what laptop to buy
20100909.txt:laptop sound isn't working

$ grep laptop *txt | grep sound
20100101.txt:sound is too loud... debating what laptop to buy
20100909.txt:laptop sound isn't working
0
ответ дан 08.12.2019, 01:43

Linux Google Desktop доступен в репозиториях Debian и сделает то, что Вы хотите. Если Вы испытываете затруднения из-за горячей клавиши по умолчанию для перевода в рабочее состояние поля поиска, затем используют эту фиксацию. Можно ограничить типы файлов и местоположений, которые индексируются так, Вы не становитесь перегруженными. Я попробовал и Гончую и Средство отслеживания прежде, чем обосноваться на Google Desktop.

Извините - не командная строка, но все еще стоящий взгляда.

0
ответ дан 08.12.2019, 01:43

Теги

Похожие вопросы