Najít text pomocí příkazové řádky

mcer

  • *
  • 15
  • Co dělám špatně?
    • Zobrazit profil
    • E-mail
Najít text pomocí příkazové řádky
« kdy: 24. 08. 2020, 22:33:52 »
Zdravím Vás všechny,

poraďte prosím. Chci najít slovo nebo frázi, které se vyskytují v několika různých souborech i v souborech v různých podadresářích. Nejde mi o hledání adresářů nebo souborů, ale o nějaký text v těch souborech. Hledám např. sousloví "můj cíl" v adresáři Domov a ve všem, co je v něm.

Kód: [Vybrat]
../Domov  find ...
Děkuji


Re:Najít text pomocí příkazové řádky
« Odpověď #1 kdy: 24. 08. 2020, 22:51:29 »
Kód: [Vybrat]
grep -r "můj cíl" ~ vypíše všechny výskyty toho sousloví rekurzivně pod ~
Kód: [Vybrat]
grep -ri "můj cíl" ~ totéž, ale navíc case-insensitive

nevýhoda je že pod ~ bude i hromada např. binárních souborů a v těch hledat nechceš, třeba tušíš příponu souboru?

Kód: [Vybrat]
grep "můj cíl" **/*.{txt,md} prohledá všechny *.txt a *.md soubory ve všech podadresářích (** možná jen v zsh? nevím)

_Jenda

  • ****
  • 433
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Najít text pomocí příkazové řádky
« Odpověď #2 kdy: 25. 08. 2020, 01:03:10 »
Kód: [Vybrat]
grep "můj cíl" **/*.{txt,md} prohledá všechny *.txt a *.md soubory ve všech podadresářích (** možná jen v zsh? nevím)
grep --include "*.txt". To tvoje expanduje před spuštěním příkazu, což bude trvat a nemusí se povést (když těch souborů bude fakt hodně). Alternativa by byla ještě find -name "*.txt" -exec grep ...

mcer

  • *
  • 15
  • Co dělám špatně?
    • Zobrazit profil
    • E-mail
Najít text pomocí příkazové řádky
« Odpověď #3 kdy: 25. 08. 2020, 03:05:14 »
Skvělé, tak konečně si najdu v počítači cokoliv potřebuji.

Typy souborů teď neřeším.
Tvar příkazu, který mi vyhovuje:

Kód: [Vybrat]
grep -ilr "můj cíl"
Děkuji, mějte se ... :)

mcer

  • *
  • 15
  • Co dělám špatně?
    • Zobrazit profil
    • E-mail
Re:Najít text pomocí příkazové řádky
« Odpověď #4 kdy: 25. 08. 2020, 03:57:50 »
Nebo užitečně

Kód: [Vybrat]
grep -ir --colour "můj cíl"
Je to dobré ...

Kód: [Vybrat]
grep --help


k3dAR

  • *****
  • 1 650
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Najít text pomocí příkazové řádky
« Odpověď #5 kdy: 25. 08. 2020, 04:42:37 »
take muzes pouzit hledani v midnight commander (doinstaluj balicek mc pokud neznas...), klavesova zkratka ALT+?

Re:Najít text pomocí příkazové řádky
« Odpověď #6 kdy: 25. 08. 2020, 06:33:19 »
...
Kód: [Vybrat]
grep -ri "můj cíl" ~ totéž, ale navíc case-insensitive

nevýhoda je že pod ~ bude i hromada např. binárních souborů a v těch hledat nechceš
...


Binarni soubory lze vyloucit pomoci "-I".