abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 20:00 | Komunita

    Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2025.

    Ladislav Hagara | Komentářů: 0
    4.10. 15:22 | IT novinky

    Na konferenci LinuxDays 2025 byl oficiálně představen nový router Turris Omnia NG.

    Ladislav Hagara | Komentářů: 18
    4.10. 05:22 | Komunita

    Přímý přenos (YouTube) z konference LinuxDays 2025, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.

    Ladislav Hagara | Komentářů: 11
    3.10. 22:44 | IT novinky

    V únoru loňského roku Úřad pro ochranu osobních údajů pravomocně uložil společnosti Avast Software pokutu 351 mil. Kč za porušení GDPR. Městský soud v Praze tuto pokutu na úterním jednání zrušil. Potvrdil ale, že společnost Avast porušila zákon, když skrze svůj zdarma dostupný antivirový program sledovala, které weby jeho uživatelé navštěvují, a tyto informace předávala dceřiné společnosti Jumpshot. Úřad pro ochranu osobních údajů

    … více »
    Ladislav Hagara | Komentářů: 5
    3.10. 19:00 | Nová verze

    Google Chrome 141 byl prohlášen za stabilní. Nejnovější stabilní verze 141.0.7390.54 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 21 bezpečnostních chyb. Za nejvážnější z nich (Heap buffer overflow in WebGPU) bylo vyplaceno 25 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    3.10. 17:11 | Upozornění

    eDoklady mají kvůli vysoké zátěži technické potíže. Ministerstvo vnitra doporučuje vzít si sebou klasický občanský průkaz nebo pas.

    Ladislav Hagara | Komentářů: 11
    3.10. 17:00 | Komunita

    Novým prezidentem Free Software Foundation (FSF) se stal Ian Kelling.

    Ladislav Hagara | Komentářů: 1
    3.10. 14:33 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za září (YouTube).

    Ladislav Hagara | Komentářů: 0
    3.10. 12:33 | Upozornění

    Vyšla kniha Počítačové programy a autorské právo. Podle internetových stránek nakladatelství je v knize "Významný prostor věnován otevřenému a svobodnému softwaru, jeho licencím, důsledkům jejich porušení a rizikům „nakažení“ proprietárního kódu režimem open source."

    javokajifeng | Komentářů: 0
    3.10. 01:11 | Bezpečnostní upozornění

    Red Hat řeší bezpečnostní incident, při kterém došlo k neoprávněnému přístupu do GitLab instance používané svým konzultačním týmem.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (38%)
     (45%)
     (16%)
     (18%)
     (20%)
     (15%)
     (18%)
     (16%)
     (16%)
    Celkem 176 hlasů
     Komentářů: 12, poslední 4.10. 20:35
    Rozcestník

    Dotaz: Hledání řetězce v souborech

    2.4.2013 14:08 Jura
    Hledání řetězce v souborech
    Přečteno: 8464×
    Dobrý den vespolek.

    Je nějaký jednodušší způsob jak hledat určitý řetězec v souborech než tento dlouhý sled příkazů ?

    find / -type f -iname '*.php' -exec grep -i 'hledaný textXY' {} \; -print0

    Děkuji za napovězení

    Jura

    Odpovědi

    2.4.2013 14:15 Kit
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    Používám odlehčenější verzi, která však funguje mírně odlišně:
    grep -i 'hledaný textXY' *.php
    případně
    grep -i 'hledaný textXY' */*.php
    apod. Neprohledává sice adresářový strom do hloubky, ale pro mé účely vyhovuje.
    2.4.2013 14:34 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    A když místo grep dáš rgrep, bude prohledávat i v podadresářích.
    2.4.2013 15:00 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    U GNU grepu, který je v linuxu obvyklý, stačí použít přepínač -r
    2.4.2013 15:04 Kit
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    To není tak jednoznačné. grep -r sice běžně používám, ale
    rgrep -i 'hledany string' *.php
    v podadresářích hledat nebude. Nemá jejich názvy.
    2.4.2013 15:12 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    grep(1):
           --include=GLOB
                  Search  only  files whose base name matches GLOB (using wildcard
                  matching as described under --exclude).
    
    2.4.2013 16:13 Kit
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    Než bych hledal všechny atributy grepu, asi bych v takových případech raději použil find z původního dotazu.

    Jinak ale dobré, jen bych uvítal kratší zápis parametru.
    grep -ri 'hledaný textXY' --include="*.php" /
    bude zřejmě odpovědí na původní dotaz.
    2.4.2013 15:13 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    Jasně, obvykle hledám v celém podstromu, koncovka mě nepálí. Takže typicky

    rgrep něco /etc
    2.4.2013 16:02 Kit
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    Takže ve stromu prolezeš i všechny multimediální soubory. Poněkud nepraktické a mimo /etc (ve kterém toho z PHP asi moc nebude) zřejmě i lenošné.
    2.4.2013 17:53 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    A ty máš multimediální soubory namíchané mezi php skripty?

    Když hledám, tak vím, kde co přibližně mám. Budu-li hledat text mezi velkými binárkami, nepoužiji rgrep. To dá rozum.
    Tarmaq avatar 2.4.2013 19:09 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    z tazatelova dotazu je zrejme, ze hleda PHP soubory od rootu, takze je opravdu zbytecne prochazet vsechny soubory nezavisle na tom zda obsahuji binarni data..
    Don't panic!
    2.4.2013 19:20 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    Tak to jo, toho jsem si nevšiml. Hledat od rootu mě nějak nenapadlo :)
    3.4.2013 09:15 Kit
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    Samozřejmě. A mám tam i databáze a šablony, které grepem prolézat nechci.
    3.4.2013 11:38 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    Pokud není dat mnoho (gigabajty), používám rgrep napřímo i za cenu pár false positives. Než odladím filtr přes koncovky, mám to dávno nalezené. Nebo výstup rgrepu přefiltruji grepem na php (v názvu souboru na začátku řádku lezoucího z rgrepu) a dále tím zredukuji false positives.

    Nikomu tenhle postup nenutím, jen se mi osvědčil a používám několikrát denně, protože to mám hotové nejrychleji a vím, že to dělá, přesně co chci. Když jde o větší strom s daty, pustím si to třeba v mc, snadno se pak skáče rovnou do nalezených souborů na místo s výskytem hledaného textu. Zápis execu ve findu mi nevyhovuje, příliš dlouho jej musím testovat. Ale jak říkám, každému sedí něco jiného. A tak to má být :)
    3.4.2013 15:17 potato
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    Přesně naopak: nehledám-li v něčem, co může být čerstvé a ještě nezacachované locate, neprocházím strom vůbec, o grepu v celém stromu ani nemluvě:
    locate -0 '*.php' | xargs -0 grep foobar
    3.4.2013 19:05 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    Hezká vychytávka. Vyžaduje to však zapnutou indexaci locate, což např. na našich debianích serverech není.
    6.2.2015 04:53 ďobo
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    find . | xargs grep 'neco' -l
    2.4.2013 19:53 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    Místo \; bych dal + a grepu bych přihodil parametr -q, ať se nemíchá s výstupem findu.
    3.4.2013 23:30 dik
    Rozbalit Rozbalit vše Re: Hledání řetězce v souborech
    grep -irl 'hledany text' /muj/dir

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.