rekurzivni prochazeni adresaru v shellu
Jan Kasprzak
kas na informatics.muni.cz
Středa Září 4 11:01:48 CEST 2002
Matthes wrote:
: Zdravicko,
:
: potreboval bych udelat shellskriptik, ktery bude delat nasledujici:
:
: pri spusteni se mu zada adresar, ktery ma prochazet;
: dal bude prochazet polozku po polozce a pokud to je regulerni soubor, neco
: s nim provede (zamena retezce sed-em, recode) a vystup ulozi do nejake
: tmpdir.
: pokud je to adresar, spusti se rekurze a jede se dal.
: v tmpdir samozrejme musi byt zachovana adresarova struktura zadaneho
: adresare.
:
: At se snazim jak se snazim, nejde mi rozchodit ta rekurze. Ponivac jsem s
: shellscriptingem trochu na stiru, uz si nevim rady.
: Poradite, jak nejlepe na to?
find adresar -type f -printf "%P\n" | while read a; do
mkdir tmpdir/`dirname "$a"` 2>/dev/null # mozna uz existuje
sed 's/neco/neco_jineho/g' <adresar/$a >tmpdir/$a
done
zadnou rekurzi tam nepotrebujete.
Pro spravnou funkcnost byste ovsem potreboval osetrit jmena souboru
obsahujici \n, zrejme pres -printf "%P\0" a pak asi while IFS="\000" read a ...
nebo tak nejak.
Nezkousel jsem to, ale takhle by to melo fungovat.
-Y.
--
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839 Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/ Czech Linux Homepage: http://www.linux.cz/ |
Pruning my incoming mailbox after being 10 days off-line,
sorry for the delayed reply.
Další informace o konferenci Linux