# Wyszukiwanie słów w plikach doc skrypt bash

**URL:** <https://forum.manjaro.pl/t/wyszukiwanie-slow-w-plikach-doc-skrypt-bash/2404>\
**Category:** Skrypty, porady i tutoriale\
**Created:** [7 Wrzesień 2022 19:29 UTC](https://forum.manjaro.pl/t/wyszukiwanie-slow-w-plikach-doc-skrypt-bash/2404 "2022-09-07T19:29:43Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Autor:** ![wiini](https://forum.manjaro.pl/user_avatar/forum.manjaro.pl/wiini/32/138_2.png) [@wiini](https://forum.manjaro.pl/u/wiini)\
**Data wpisu:** [7 Wrzesień 2022 19:29 UTC](https://forum.manjaro.pl/t/wyszukiwanie-slow-w-plikach-doc-skrypt-bash/2404/1 "2022-09-07T19:29:43Z")

</div>

Witam,  
mam skrypt do przeszukiwania plików .doc i .docx po zadanym słowie. Niestety nie czyta polskich liter.  
Czy jest możliwość modyfikacji tak aby czytało polskie litery?

```auto
#!/bin/bash
   echo -e "\n
Witamy w wyszukiwarcedoc. Ten skrypt przeszuka pliki .doc i .docx w tym katalogu dla podanego ciągu znaków. \n
Wpisz ciąg tekstowy, który chcesz znaleźć... \n"
   read response
   find . -name "*.doc" | 
       while read i; do catdoc "$i" | 
                 grep --color=auto -iH --label="$i" "$response"; done
   find . -name "*.docx" | 
       while read i; do docx2txt < "$i" | 
                 grep --color=auto -iH --label="$i" "$response"; done

```

---

<div class="post-metadata">

**Autor:** ![Tomek](https://forum.manjaro.pl/user_avatar/forum.manjaro.pl/tomek/32/3834_2.png) [@Tomek](https://forum.manjaro.pl/u/Tomek)\
**Data wpisu:** [7 Wrzesień 2022 20:48 UTC](https://forum.manjaro.pl/t/wyszukiwanie-slow-w-plikach-doc-skrypt-bash/2404/2 "2022-09-07T20:48:17Z")

</div>

Nie ma tu czego poprawiać jeśli chodzi o wyszukiwanie. U mnie działa również z polskimi znakami. Nie mogłem jednak patrzeć na formatowanie i estetykę, więc w tym aspekcie pozwoliłem sobie poprawić. Poza tym dodałem info, gdy nie znajdzie danego wyrażenia.

```bash
#!/bin/bash
clear
echo -e "Witamy w wyszukiwarce doc. Ten skrypt przeszuka pliki .doc i .docx w tym katalogu dla podanego ciągu znaków.\n"
read -r -p $'\033[0;32mWpisz tekst, który chcesz znaleźć:\033[0m ' response
echo

docfound=$(find . -name "*.doc" | while read -r i; do catdoc "$i" | grep --color=always -iH --label="$i" "$response"; done)
docxfound=$(find . -name "*.docx" | while read -r i; do docx2txt < "$i" | grep --color=always -iH --label="$i" "$response"; done)

if [[-n "$docfound" || -n "$docxfound"]]
then
    printf "%s\n%s" "$docfound" "$docxfound"
else
  echo -e "\033[0;31mNiczego nie znaleziono.\033[0m"
fi

```

---

<div class="post-metadata">

**Autor:** ![wiini](https://forum.manjaro.pl/user_avatar/forum.manjaro.pl/wiini/32/138_2.png) [@wiini](https://forum.manjaro.pl/u/wiini)\
**Data wpisu:** [7 Wrzesień 2022 21:05 UTC](https://forum.manjaro.pl/t/wyszukiwanie-slow-w-plikach-doc-skrypt-bash/2404/3 "2022-09-07T21:05:34Z")

</div>

☹  
u mnie to wygląda tak:  
`./2897_heinlein-robert_dubler.doc:<p class="normalText">Nigdy nie zmieniaЕ‚em poprawionych fragmentГіw вЂ” w przeciwieЕ„stwie do caЕ‚ej reszty. Kiedy siД™ juЕј wpadnie w trans, czasem okazuje siД™, Ејe moЕјna wyraziД‡ pewnД… myЕ›l w inny, bardziej ciekawy sposГіb. WkrГіtce zorientowaЕ‚em siД™ w naturze tej korekty вЂ” prawie zawsze dotyczyЕ‚a ozdobnikГіw. MГіw bez ogrГіdek вЂ” albo im siД™ spodoba</p>bo niech siД™ wypchajД…!`

---

<div class="post-metadata">

**Autor:** ![Tomek](https://forum.manjaro.pl/user_avatar/forum.manjaro.pl/tomek/32/3834_2.png) [@Tomek](https://forum.manjaro.pl/u/Tomek)\
**Data wpisu:** [7 Wrzesień 2022 22:05 UTC](https://forum.manjaro.pl/t/wyszukiwanie-slow-w-plikach-doc-skrypt-bash/2404/4 "2022-09-07T22:05:05Z")

</div>

To najprawdopodobniej kwestia kodowania dokumentu. W przypadku plików `.doc` i `catdoc` powinno dać się to rozwiązać przez odpowiednie ustawienie flag `-d` i `-s`. Pozostaje tylko kwestia ustalenia jak został zakodowany ten plik (żeby nie było za łatwo, lista możliwych formatów jest niestety dość długa, `iconv -l`). `docx2txt` nie ma żadnych opcji do ustawienia, więc tu nic się nie poradzi.

Najprostszym, moim zdaniem, sposobem by było przekonwertowanie wszystkich dokumentów, jakie masz na Unicode. Pytanie tylko, czy jest na to jakiś prosty sposób, bo jak na razie nie trafiłem na nic konkretnego 😕

---

<div class="post-metadata">

**Autor:** ![wiini](https://forum.manjaro.pl/user_avatar/forum.manjaro.pl/wiini/32/138_2.png) [@wiini](https://forum.manjaro.pl/u/wiini)\
**Data wpisu:** [8 Wrzesień 2022 05:50 UTC](https://forum.manjaro.pl/t/wyszukiwanie-slow-w-plikach-doc-skrypt-bash/2404/5 "2022-09-08T05:50:45Z")

</div>

Dziękuję za wyczerpującą odpowiedź. Za “poprawiony” skrypt też bardzo dziękuję.  
Pokombinuję w takim razie z kodowaniem.
