Portál AbcLinuxu, 10. května 2025 02:16
No zrovna predevcirem jsem delal nejaky skript, kde jsem potreboval z adresare pouzit kazdy n-ty soubor podle casu. Vysledek vypadal nejak takto:
counter=0
Ale jestli uz to pole mas vytvorene, tak samozrejme pod nami uz jsou jednodussi reseni
for i in `ls -tr .`; do
counter++
if [ `expr $counter % n` -eq 0 ]; then
#Tady jsem neco provadel .. napr echo $i
fi
done
Myslíš něco jako tohle?
ls -tr . | sed -n "2~${n}p" | while read f; do echo "Zpracovavam $f"; done;
Co znamená "načíst"?No stačí třeba jen vypsat echem...
Polem je myšleno bashové pole?Ano, jedná se o bashové pole
array=() array+=("aa" "bb" "cc" "dd" "ee" "ff" "gg" "hh" "ii" "jj" "kk" "ll")a vypsat potřebuji položku v tomto případě
"cc" a "ff" a "ii" a "ll"
Kde se vzalo? Nemohla by v něm být každá třetí položka třeba už ve chvíli, kdy vznikáPole vzniká nebo je nadefinováno uživatelem jako celek pro lepší orientaci, tak že odpověď je ne. Díky
for ((i=2; i<${#array[*]}; i+=3)); do echo ${array[i]}; done
for ((i=2; i<${#array[*]}; i+=3)); do echo "${array[i]}"; done
Co je na poli tak speciálního? Kdybych chtěl jít do extrému, co mohu udělat s asociativním polem a neudělám s hromádkou souborů pojmenovaných podle klíče v dočasném adresáři? Pokud by daná věc bez pole šla opravdu těžko (třeba nějaká mnoharozměrná data), pak asi není shell správný nástroj.Nemusí to být ani mnoharozměrná data, nevím dělám převážně jen takové prkotity pomocí dialogu, veškeré menu je vždy v poli, jelikož si nedokážu představit, že by si to dialog dokázal tahal ze souboru...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.