Portál AbcLinuxu, 14. května 2025 02:15

Dotaz: FIND použitý ve FOR - jiný výstup?

16.8.2012 14:16 NeviSiRady
FIND použitý ve FOR - jiný výstup?
Přečteno: 200×
Odpovědět | Admin
Ahoj,

potřeboval bych malou radu... mám toto

for i in find /dir/*/souborAAA . . . done

Funguje to téměř skvěle, najde to všechny složky kde souborAAA existuje a já si složky pak explodnu.. problém, ale je, že mi tam přebývá složka a to "." ... Proste první v pořádí chce zpracovat složku ".".

To by nebylo zvlášťní pokud bych to nepustil find /dir/*/souborAAA a tam ta složka "." zase není :)

Rada?:-) Děkuji

Pavel
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.8.2012 14:45 diverman
Rozbalit Rozbalit vše Re: FIND použitý ve FOR - jiný výstup?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co treba find . -exec ./do_something_with_file.sh {} \;
16.8.2012 14:48 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: FIND použitý ve FOR - jiný výstup?
Odpovědět | | Sbalit | Link | Blokovat | Admin
for i in find /dir/*/souborAAA . . . done

Funguje to téměř skvěle
To pochybujem, pretože to "/dir/*/souborAAA" sa najpravdepodobnejšie rozvinie na zoznam adresárov (nie súborov), ktoré má find prehľadávať. Riešenie svojho problému hľadaj v manuálovej stránke find a jeho parametroch -name a -type.
16.8.2012 15:01 NeviSiRady
Rozbalit Rozbalit vše Re: FIND použitý ve FOR - jiný výstup?
Ne že bych se tam nekoukal :).... a ano opravdu to funguje. Prostě to vyhodí následny seznam

/dir/slozka1/souborAAA /dir/slozka2/souborAAA /dir/slozkaN/souborAAA

Daný problém je ten, že v .sh skriptu ve "for" to hodí jako první složku "."... ale když to pustím přímo tak v konzoli, tak tam ta tečka není :)
16.8.2012 22:01 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: FIND použitý ve FOR - jiný výstup?
Tipujem, že to súvisí s vecami ako GLOBIGNORE či dotglob, ktorými sa shell vykonávajúci ten skript líši od shell-u, ktorý máš pustený normálne.
17.8.2012 10:57 NeviSiRady
Rozbalit Rozbalit vše Re: FIND použitý ve FOR - jiný výstup?
Díky za snahu pomoct. Zkusil jsem v sh skriptu přidat GLOBIGNORE=.:.. ale bez změny. No jdu hledat dále :)
Josef Kufner avatar 17.8.2012 11:26 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: FIND použitý ve FOR - jiný výstup?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud chceš jeden příkaz, zkus toto:
find ... | xargs ...
Pokud chceš více:
find ... | while read f ; do ... ; done
Hello world ! Segmentation fault (core dumped)

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.