Portál AbcLinuxu, 14. května 2025 01:32

Dotaz: grep: jak najít text na celém počítači?

28.10.2007 19:12 Kelly
grep: jak najít text na celém počítači?
Přečteno: 4268×
Odpovědět | Admin
Ahoj, potřebuji nají určitý text na celem serveru

zadam:

grep "hledany-text" /*

ale nic nenajde a ani to neprohleda podadresare, poradite jak to opravit? dekuji
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.10.2007 19:21 Radek
Rozbalit Rozbalit vše Re: GREP
Odpovědět | | Sbalit | Link | Blokovat | Admin
pouzij rekurzi: grep -R "hledany-text" /*
28.10.2007 19:31 Jooky (inactive) | skóre: 39 | blog: Jooky | Bratislava
Rozbalit Rozbalit vše Re: GREP
Odpovědět | | Sbalit | Link | Blokovat | Admin
gnu grep obsahuje takuto moznost
-R, -r, --recursive
    Read all files under each directory, recursively; this is equivalent
    to the -d recurse option.
potom staci zadat kde zacat napr takto, na hviezdicku som nezabudol (FYI: precita to vsetko vratanie binariek a toho co je namontovane na systeme, takze opatrne)
grep -r "toto hladam" /
"vratane binariek" som napisal, lebo ked grep na tvojom systeme nebude spravat takto, tak prvy subor, ktory obsahuje regular, rozbije terminal
$ file nologin
nologin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
 for GNU/Linux 2.6.9, dynamically linked (uses shared libs), stripped
$ grep account nologin
Binary file nologin matches
$   
bdw. ked ide o nejaky UNIX grep, tak jednina moznost je kombinacia find/grep alebo nieco podobne
28.10.2007 19:39 Kelly
Rozbalit Rozbalit vše Re: GREP
Odpovědět | | Sbalit | Link | Blokovat | Admin
dobre, a kdyz tedy zadam

grep -r "toto hladam" /

tak se ma stat co presne?

me to vypisuje vsechny soubory s textem ktery nehledam..
29.10.2007 16:53 Ash | skóre: 53
Rozbalit Rozbalit vše Re: GREP
Nepouštíte to náhodou pod bětžným uživatelem a není u těch souborů napsáno "Access denied"? V opačném případě by to mělo najít všechny výskyty ve všech soborech obsahující "toto hladam".
28.10.2007 19:42 ajikdpoe | skóre: 23 | blog: dvh
Rozbalit Rozbalit vše Re: GREP
Odpovědět | | Sbalit | Link | Blokovat | Admin
for i in `find / 2>/dev/null`; do [ "`grep 'hladany_text' $i`" != "" ] && echo $i; done
28.10.2007 20:30 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: GREP
Jestli se mi podařilo aspoň přibližně odhadnout účel té tasemnice, tak bych doporučil spíš man grep a pak se podívat na volby -r a -l.
-- Nezdar není hanbou, hanbou je strach z pokusu.
29.10.2007 03:02 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: GREP
Navíc by fungovalo i při mezerách v názvech souborů. Při studiu té manuálové stránky doporučuji zaměřit se zejména na sekci o návratové hodnotě.
29.10.2007 17:05 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: GREP
ak fakt váš grep nepozná prepínač -r, tak to už radšej
find / -type f -print0 | xargs -0 grep -l text
popr.
find / -type f -exec grep -l text {} \;
(toto rovnako ako to vaše spustí jeden grep pre každý súbor)
6.11.2007 19:24 Jooky (inactive) | skóre: 39 | blog: Jooky | Bratislava
Rozbalit Rozbalit vše Re: GREP
for i in `find / 2>/dev/null`; do [ "`grep 'hladany_text' $i`" != "" ] && echo $i; done

Zaujmalo by ma akym sposobom ste prisli na toto riesenie ? :D a ci vam hovoria nieco premenne $IFS a $? ?
17.11.2007 19:24 Ash | skóre: 53
Rozbalit Rozbalit vše Re: GREP
for i in `find / 2>/dev/null` tak to je asi nejdrsnější a nejoptimistější kus kódu co jsem kdy viděl :)
28.10.2007 21:11 Kokos
Rozbalit Rozbalit vše Re: grep: jak najít text na celém počítači?
Odpovědět | | Sbalit | Link | Blokovat | Admin
fgrep -lsi 'tohle hledam' `find / -type f 2>>/dev/null`
29.10.2007 10:31 maleprase | skóre: 28
Rozbalit Rozbalit vše Re: grep: jak najít text na celém počítači?
tohle nefunguje

-bash: /bin/fgrep: Argument list too long

kdyz uz bych chtel pouzit find tak v kombinaci s xargs:

find / -type f -print0 2>>/dev/null | xargs -0 fgrep -lsi 'tohle hledam'
28.10.2007 22:57 Jiří J. | skóre: 34 | blog: Poutník | Brno
Rozbalit Rozbalit vše Re: grep: jak najít text na celém počítači?
Odpovědět | | Sbalit | Link | Blokovat | Admin
grep -H -R "text" / nebo grep -H -C 5 -R "text" /
29.10.2007 10:03 vch | skóre: 11
Rozbalit Rozbalit vše Re: grep: jak najít text na celém počítači?
Odpovědět | | Sbalit | Link | Blokovat | Admin
A další možnost:
find / -type f -print0 | xargs -0 grep "hledany text"
Jelikož některé soubory jsou čitelné jen pro roota, tak by to chtělo spustit pod rootem.
17.11.2007 19:50 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: grep: jak najít text na celém počítači?
Jen poznámka - pokud se daný text nemá hledat v pro uživatele nečitelných souborech, stačí chybový výstup z grepu přesměrovat do /dev/null. Ale asi to tu píšu zbytečně, protože to všichni víte a tazatel naopak nebude vědět, co je to přesměrování :-)

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.