Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
borru
HV veteran

liitunud: 21.12.2003
|
08.01.2009 12:14:42
otsing ette antud failidest |
|
|
Tere!
Oskab keegi mõnda sellist programmi nimetada mis leiaks failid ette antud kaustast, mille sisus peituvad vasted.
Täpsemalt PHP failide sisse peaks oskama piiluda see programm.
|
|
Kommentaarid: 13 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
13 |
|
tagasi üles |
|
 |
nene
Kreisi kasutaja

liitunud: 20.03.2004
|
08.01.2009 13:33:10
|
|
|
Selleks sobivad suurepäraselt find ja grep.
find on programm failide otsimiseks
grep on programm failidest teksti otsimiseks
Kombineerid need kokku ja voilaa:
grep 'tekst mida failidest otsida' $(find kataloog/kust/otsida/ -iname '*.php') |
Sama asi kasutades xargs-i:
find kataloog/kust/otsida/ -iname '*.php' | xargs grep 'tekst mida failidest otsida' |
Kui sind huvitavad vaid unikaalsed failinimed, siis:
find kataloog/kust/otsida/ -iname '*.php' | xargs grep 'tekst mida failidest otsida' | sed 's/:.*//' | uniq |
Paljud GUI programmid, mis pakuvad Linuxis sedasama funktsionaalsust tegelikult kasutavad taustal find-i ja grep-i.
_________________ Mõistus otsas? Pane pinusse... |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
 |
Supiplex
HV veteran

liitunud: 11.12.2002
|
08.01.2009 17:46:01
|
|
|
nene - huvi pärast küsin, miks sa find väljundi xargsile söödad? Nö õpikunäitena on levinud on pigem --exec argument:
tsitaat: |
find kataloog/kust/otsida/ -iname '*.php' --exec grep 'tekst mida failidest otsida' {}; |
_________________ The young lady had an unusual list,
Linked in part to a structural weakness.
She set no preconditions. |
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
34 |
|
tagasi üles |
|
 |
nene
Kreisi kasutaja

liitunud: 20.03.2004
|
08.01.2009 18:31:28
|
|
|
Õigupoolest ma polnudki tollest exec asjast teadlik.
Kuid sinu näidatud kood vähemasti minul ei toimi. Pidin kirjutama midagi sellist (-H argument grepile selleks, et ta näitaks failinimesid):
find kataloog/kust/otsida/ -iname '*.php' -exec grep -H 'tekst mida failidest otsida' '{}' ';' |
Üsna kohmakas mu meelest sedasi. Eelistaks siiski xargs või $(...) varianti.
_________________ Mõistus otsas? Pane pinusse... |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
 |
Supiplex
HV veteran

liitunud: 11.12.2002
|
08.01.2009 19:00:41
|
|
|
Mm, unustasin semikooloni eest backslashi ära. Loogelisi sulge pole vaja escapeda.
tsitaat: |
find kataloog/kust/otsida/ -iname '*.php' --exec grep 'tekst mida failidest otsida' {} \; |
_________________ The young lady had an unusual list,
Linked in part to a structural weakness.
She set no preconditions. |
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
34 |
|
tagasi üles |
|
 |
borru
HV veteran

liitunud: 21.12.2003
|
08.01.2009 19:52:21
|
|
|
find: unknown predicate `--exec' |
nene variant xargs-ga toimis.
Tänud!
|
|
Kommentaarid: 13 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
13 |
|
tagasi üles |
|
 |
Supiplex
HV veteran

liitunud: 11.12.2002
|
08.01.2009 20:01:08
|
|
|
Ohjah, mul on nati pea laiali täna. Ühe kriipsuga "-exec" peab olema. On ilmselt viimane aeg päev ära lõpetada ja koju minna.
_________________ The young lady had an unusual list,
Linked in part to a structural weakness.
She set no preconditions. |
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
34 |
|
tagasi üles |
|
 |
troglodyte
Kreisi kasutaja

liitunud: 09.08.2002
|
08.01.2009 21:55:43
|
|
|
find -exec käivitab programmi iga leitud faili kohta, xargs aga annab teatud hulga (mida saab ka -n võtme abil muuta) sisendridu programmi argumentideks.
Lisaks (arendades edasi ühte nene näidet) on grepil mitmeid toredaid võtmeid, nagu näiteks -l mis prindibki ainult matchinud faili nime.
Ehk siis järgmine käsurida peaks võrdlemisi efektiivne olema:
find kataloog/kust/otsida/ -iname '*.php' | xargs grep -l 'tekst mida failidest otsida' |
_________________ ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn |
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
34 |
|
tagasi üles |
|
 |
nene
Kreisi kasutaja

liitunud: 20.03.2004
|
09.01.2009 01:58:12
|
|
|
troglodyte kirjutas: |
näiteks -l mis prindibki ainult matchinud faili nime. |
Pagan. Enne just mõtlesin, et grepil peaks selline võti olema, aga otsisin mis ma otsisin, kuidagi ei suutnud manuaalist leida.
_________________ Mõistus otsas? Pane pinusse... |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|