Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: 4i4obengy в Jan 05, 2019, 17:43



Титла: Един странен въпрос за търсене, намиране, но не винаги
Публикувано от: 4i4obengy в Jan 05, 2019, 17:43
Ще опитам да изложа проблема, дано съм ясен: За мен е много важно да мога да търся по ключова дума във файлове docx. Например като напиша в търсачката думата "котка" и да ми покаже всички docx файлове, в чиито текстове да има тази дума. И така: За сега файловия мениджър Dolphin KDE на Linux Mint KDE върши тази работа перфектно. Проблемът е обаче, че нито една друга дистрибуция, която съм пробвал с KDE не се справя с това. Иска ми се да инсталирам по-нова дистрибуция от последната на Linux Mint KDE 18.3, а нали знаете, че Минта се отказаха от КДЕ-то след тази версия. Явно в Минта има някаква друга инсталирана магийка та въпросът е каква е? Някой има ли идея по този странен казус?


Титла: Re: Един странен въпрос за търсене, намиране, но не винаги
Публикувано от: 4096bits в Jan 05, 2019, 18:22
grep ?


Титла: Re: Един странен въпрос за търсене, намиране, но не винаги
Публикувано от: stealth01 в Jan 05, 2019, 19:00
Не съм го ровил много, а не го и ползвам, ама виж имаш ли инсталиран baloo - A framework for searching and managing metadata in KDE Software.


Титла: Re: Един странен въпрос за търсене, намиране, но не винаги
Публикувано от: growchie в Jan 05, 2019, 19:14
Нарича се индексирано търсене. Навремето ставаше през beagle ама вече не знам с какво го замениха. Има в линукс аналог на spotlight в мака. Просто го потърси в гугъл.


Титла: Re: Един странен въпрос за търсене, намиране, но не винаги
Публикувано от: growchie в Jan 05, 2019, 19:18
Търси дистро с работещ gnome tracker


Титла: Re: Един странен въпрос за търсене, намиране, но не винаги
Публикувано от: go_fire в Jan 05, 2019, 19:20
Във втория отговор ти го написаха. Инсталирано ти е. Това е пренаписано „кучето“ по къдъерски начин.

Ще я бъде работата, ама трябва време. Примерно няколко дена или седмица няма да намира нищо. Ама после ще намира всичко. То си работи тихичко отзад и даже не може да го спреш. Трябва да деинсталираш половината КДЕ, за да премахнеш тази „рамка“.


Титла: Re: Един странен въпрос за търсене, намиране, но не винаги
Публикувано от: 4i4obengy в Jan 05, 2019, 19:28
Правя проба на дистро пуснато от жива флашка. Създавам текстов документ в Kate и в LibreOffice. Dolphin-a намира ключовата дума в Kate, обаче в docx файла не. А при Линукс Минт с КДЕ намира и в docx, а това всъщност ми е важното!


Титла: Re: Един странен въпрос за търсене, намиране, но не винаги
Публикувано от: 4096bits в Jan 06, 2019, 00:57
Код:
#!/usr/bin/env python3

import docx
import glob
import sys

files = glob.glob('*.docx')

for f in files:
    doc = docx.Document(f)
   
    for para in doc.paragraphs:
        if sys.argv[1] in para.text:
            print(f)
            break
Това би трябвало да търси единична дума във всички docx файлове в текущата директория.
Не зная, как модулът docx борави с файловете, дали ги затваря, след като приключи с тях или не. Не съм боравил досега с него и сега само набързо го прегледах.


Титла: Re: Един странен въпрос за търсене, намиране, но не винаги
Публикувано от: 4i4obengy в Jan 08, 2019, 17:04
Инсталирано е baloo-kf5 и baloo-utils. baloo не е инсталирано, но в Минт-а търси с docx. В другите дистра с КДЕ също тези пакети са инсталирани, но не търси в docx. Някакви други идеи?


Титла: Re: Един странен въпрос за търсене, намиране, но не винаги
Публикувано от: jet в Jan 08, 2019, 17:35
Zip има ли инсталиран, щото docx са си всъщност zip архиви.


Титла: Re: Един странен въпрос за търсене, намиране, но не винаги
Публикувано от: bot в Jan 08, 2019, 18:04
 Инсталирай notepadqq
https://mintguide.org/office/238-notepadqq-clone-of-the-notepad-in-linux-mint.html

 С този конкретно не съм работил, но уж е базиран на оригиналния код на Notepad++.
 Там претърсваш файловете със Search -> Find in Files
 Задаваш ключова дума в Find what: котка
 Задаваш филтър *.docx
 Задаваш директория, като инструмента претърсва текущата и всички поддиректории.


Титла: Re: Един странен въпрос за търсене, намиране, но не винаги
Публикувано от: makeme в Jan 09, 2019, 19:13
Това скриптче работи прекрасно:

Код
GeSHi (Bash):
  1. #!/bin/bash
  2. echo -e "\n
  3. Welcome to scandocs. This will search .doc AND .docx files in this directory for a given string. \n
  4. Type in the text string you want to find... \n"
  5. read response
  6. find . -name "*.doc" |
  7. while read i; do catdoc "$i" |
  8. grep --color=auto -iH --label="$i" "$response"; done
  9. find . -name "*.docx" |
  10. while read i; do docx2txt < "$i" |
  11. grep --color=auto -iH --label="$i" "$response"; done
  12.  
https://stackoverflow.com/questions/11462184/search-ms-word-files-in-a-directory-for-specific-content-in-linux

Може би тези тулчета са ти били вградени. Провери дали имаш catdoc и docx2txt.

ПП: Ако искаш да търси и в тхт или друго не е проблем да го барнем.


Титла: Re: Един странен въпрос за търсене, намиране, но не винаги
Публикувано от: 4096bits в Jan 09, 2019, 22:48
Тъй де! И аз съм на мнение, че един прост скрипт, ще свърши повече работа отколкото някой прозорец. Ма моя е възможно най-простия. Мързеше ме   :D


Титла: Re: Един странен въпрос за търсене, намиране, но не винаги
Публикувано от: makeme в Jan 11, 2019, 11:51
Ако имаш zenity, ти го моднах да си имаш и UI (предполагам затова не коментира използването на скриптовете :) ):
Код
GeSHi (Bash):
  1. #!/bin/bash
  2. dirpath="$(zenity --file-selection --directory)"
  3. keyword="$(zenity --entry --text "Keyword for searching" --entry-text "String")"
  4. echo "Results:" > /tmp/scanresultstext
  5. greptxt ()
  6. {
  7.  find $dirpath -name "*.txt" |
  8.  while read i; do cat "$i" |
  9.  grep -il --label="$i" "$keyword" >> /tmp/scanresultstext ; done
  10. }
  11. grepdocs ()
  12. {
  13.  find $dirpath -name "*.doc" |
  14.  while read i; do catdoc "$i" |
  15.  grep -il --label="$i" "$keyword" >> /tmp/scanresultstext ; done
  16. }
  17. grepdocxs ()
  18. {
  19.  find $dirpath -name "*.docx" |
  20.  while read i; do docx2txt < "$i" |
  21.  grep -il --label="$i" "$keyword" >> /tmp/scanresultstext ; done
  22. }
  23. greptxt
  24. grepdocs
  25. grepdocxs
  26. zenity --text-info --filename=/tmp/scanresultstext

Ако искаш само docx файловете, си коментирай greptxt и grepdocs накрая. Необходимите пакети са: cat, catdoc, docx2txt, zenity , за да работи всичко.