Portál AbcLinuxu, 30. července 2025 17:05


Dotaz: prohledani celeho adresare, nejen aktualniho prikazem for

4.3.2004 10:19 knech | skóre: 7
prohledani celeho adresare, nejen aktualniho prikazem for
Přečteno: 96×
Odpovědět | Admin
for i in 'ls *.dat' ; do echo $i ; done

vypise soubory typu *.dat v aktualnim adresari

jak to pozmenit, aby vypsal tyto soubory i v pripadnych podadresarich aktualniho adresare?

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

Odpovědi

Jiří Svoboda avatar 4.3.2004 10:27 Jiří Svoboda | skóre: 37 | blog: cat /dev/mind | Prostějov
Rozbalit Rozbalit vše prohledani celeho adresare, nejen aktualniho prikazem for
Odpovědět | | Sbalit | Link | Blokovat | Admin
man find
4.3.2004 10:27 Maude Lebowski
Rozbalit Rozbalit vše prohledani celeho adresare, nejen aktualniho prikazem for
Odpovědět | | Sbalit | Link | Blokovat | Admin
for i in $(find . -name '*.dat'); do echo $i; done
4.3.2004 10:38 Yeti
Rozbalit Rozbalit vše prohledani celeho adresare, nejen aktualniho prikazem for
A máme letošního vítěze soutěže o nejzbytečnější for ;-)
4.3.2004 11:07 knech | skóre: 7
Rozbalit Rozbalit vše prohledani celeho adresare, nejen aktualniho prikazem for
chtel jsem si najit nektere soubory a s nima pak jeste neco delat - prikazem awk spocitat prumer prvniho sloupce cisel v souborech typu dat...jak to lze teda lepe?
4.3.2004 11:17 Yeti
Rozbalit Rozbalit vše prohledani celeho adresare, nejen aktualniho prikazem for
find . -name \*.dat | xargs -n1 awk '{$s+=$1}END{print ARGV[1],$s}'

nebo něco v tom smyslu...
4.3.2004 11:26 Yeti
Rozbalit Rozbalit vše prohledani celeho adresare, nejen aktualniho prikazem for
Taky by to samozřejmě šlo napsat jen s jedním spuštěním awk, který by pak součty počítal zvlášť pro každý argument.
Stanislav Brabec avatar 4.3.2004 10:39 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše prohledani celeho adresare, nejen aktualniho prikazem for
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi takhle (bez záruky):
shopt -s nullglob
function for_find {
    local item
    if test -d "$1" ; then
	for item in "$1/"* ; do
	    for_find "$item"
	done
    else
	moje akce "$1"
    fi
}
for_find adresář
Ještě budete muset pohrát se shopt -s dotglob.
4.3.2004 10:44 Yeti
Rozbalit Rozbalit vše no please...
find . -print0 | xargs -0 moje_akce

pokud moje_akce chce soubory po jednom, tak

find . -print0 | xargs -0 -n1 moje_akce

etc.
4.3.2004 10:41 Yeti
Rozbalit Rozbalit vše prohledani celeho adresare, nejen aktualniho prikazem for
Odpovědět | | Sbalit | Link | Blokovat | Admin
s cestou:

find .

jen jména bez cesty:

find . -printf '%f\n'

více ve find(1)...
4.3.2004 12:36 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše prohledani celeho adresare, nejen aktualniho prikazem for
No já bych se nenamáhal ani tou tečkou :-)
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
4.3.2004 12:45 Yeti
Rozbalit Rozbalit vše prohledani celeho adresare, nejen aktualniho prikazem for
GNU find ji sice nevyžaduje, ale považuji to za celkem dobrý zvyk ... aspoň když píšu, aby to pak bylo i ke čtení ;-)

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.