Автор Тема: Един странен въпрос за търсене, намиране, но не винаги  (Прочетена 3152 пъти)

4i4obengy

  • Напреднали
  • *****
  • Публикации: 185
  • Distribution: Linux Mint
  • Window Manager: KDE
    • Профил
    • WWW
Ще опитам да изложа проблема, дано съм ясен: За мен е много важно да мога да търся по ключова дума във файлове docx. Например като напиша в търсачката думата "котка" и да ми покаже всички docx файлове, в чиито текстове да има тази дума. И така: За сега файловия мениджър Dolphin KDE на Linux Mint KDE върши тази работа перфектно. Проблемът е обаче, че нито една друга дистрибуция, която съм пробвал с KDE не се справя с това. Иска ми се да инсталирам по-нова дистрибуция от последната на Linux Mint KDE 18.3, а нали знаете, че Минта се отказаха от КДЕ-то след тази версия. Явно в Минта има някаква друга инсталирана магийка та въпросът е каква е? Някой има ли идея по този странен казус?
Активен

4096bits

  • Напреднали
  • *****
  • Публикации: 6151
    • Профил
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

stealth01

  • Гост
Не съм го ровил много, а не го и ползвам, ама виж имаш ли инсталиран baloo - A framework for searching and managing metadata in KDE Software.
Активен

growchie

  • Напреднали
  • *****
  • Публикации: 623
    • Профил
Нарича се индексирано търсене. Навремето ставаше през beagle ама вече не знам с какво го замениха. Има в линукс аналог на spotlight в мака. Просто го потърси в гугъл.
Активен

growchie

  • Напреднали
  • *****
  • Публикации: 623
    • Профил
Търси дистро с работещ gnome tracker
Активен

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8780
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Във втория отговор ти го написаха. Инсталирано ти е. Това е пренаписано „кучето“ по къдъерски начин.

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

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

4i4obengy

  • Напреднали
  • *****
  • Публикации: 185
  • Distribution: Linux Mint
  • Window Manager: KDE
    • Профил
    • WWW
Правя проба на дистро пуснато от жива флашка. Създавам текстов документ в Kate и в LibreOffice. Dolphin-a намира ключовата дума в Kate, обаче в docx файла не. А при Линукс Минт с КДЕ намира и в docx, а това всъщност ми е важното!
Активен

4096bits

  • Напреднали
  • *****
  • Публикации: 6151
    • Профил
Код:
#!/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 борави с файловете, дали ги затваря, след като приключи с тях или не. Не съм боравил досега с него и сега само набързо го прегледах.
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

4i4obengy

  • Напреднали
  • *****
  • Публикации: 185
  • Distribution: Linux Mint
  • Window Manager: KDE
    • Профил
    • WWW
Инсталирано е baloo-kf5 и baloo-utils. baloo не е инсталирано, но в Минт-а търси с docx. В другите дистра с КДЕ също тези пакети са инсталирани, но не търси в docx. Някакви други идеи?
Активен

jet

  • Напреднали
  • *****
  • Публикации: 3472
  • Distribution: debian
  • Window Manager: kde
    • Профил
Zip има ли инсталиран, щото docx са си всъщност zip архиви.
Активен

..⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁
  ⢿⡄⠘⠷⠚⠋
  ⠈⠳⣄⠀⠀⠀⠀  Debian, the universal operating system.

bot

  • Гост
 Инсталирай notepadqq
https://mintguide.org/office/238-notepadqq-clone-of-the-notepad-in-linux-mint.html

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

makeme

  • Напреднали
  • *****
  • Публикации: 895
  • Distribution: Many
  • Window Manager: KDE
    • Профил
Това скриптче работи прекрасно:

Код
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.

ПП: Ако искаш да търси и в тхт или друго не е проблем да го барнем.
« Последна редакция: Jan 09, 2019, 19:16 от makeme »
Активен

Distributions:  UbuntuMate; Kubuntu; CentOS; Kali; Raspberry Pi OS ...

4096bits

  • Напреднали
  • *****
  • Публикации: 6151
    • Профил
Тъй де! И аз съм на мнение, че един прост скрипт, ще свърши повече работа отколкото някой прозорец. Ма моя е възможно най-простия. Мързеше ме   :D
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

makeme

  • Напреднали
  • *****
  • Публикации: 895
  • Distribution: Many
  • Window Manager: KDE
    • Профил
Ако имаш 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 , за да работи всичко.
« Последна редакция: Jan 11, 2019, 12:35 от makeme »
Активен

Distributions:  UbuntuMate; Kubuntu; CentOS; Kali; Raspberry Pi OS ...