Portál AbcLinuxu, 14. července 2025 15:45


Dotaz: format promenne 001 misto 1

15.6.2005 17:21 Jiri Pachman
format promenne 001 misto 1
Přečteno: 196×
Odpovědět | Admin
Dobry den, potreboval bych radu, jak donutit bash, aby mi promennou vytvarel ve formatu 001, 002, atd misto 1,2,... Mam soubory x_001.dat, x_002.dat ... x_010.dat, atd., ktere zpracovavam. Ted mi to pri 10 skonci, jelikoz to nenajde soubor x_0010.dat.

promennou mam zadefinovanou pomoci: for ((k=1;k<50;k++)); do a to cislo 50 si menim rucne podle poctu vyhodnotitelnych souboru a soubor pak definuju jako "*x_00"$k".dat", coz na cisla nad 10 jaksi nemuze fungovat.

v octave to delam pomoci num2str(k,´%03u´) kde k je ta promenna.

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

Odpovědi

wake avatar 15.6.2005 17:27 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: format promenne 001 misto 1
Odpovědět | | Sbalit | Link | Blokovat | Admin
a co takhle misto for(...) psat for i in x_*.dat ? ;-)
Tento příspěvek má hlavičku i patičku!
15.6.2005 17:29 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: format promenne 001 misto 1
Odpovědět | | Sbalit | Link | Blokovat | Admin
printf %03d $k
15.6.2005 17:34 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: format promenne 001 misto 1
Aha, tak i printf je builtin, to jsem nevěděl.
15.6.2005 17:32 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: format promenne 001 misto 1
Odpovědět | | Sbalit | Link | Blokovat | Admin
for k in `seq -w 50`; do
    echo "0$k"
done
nebo
for k in `seq -f '%03g' 50`; do
    echo "$k"
done
Jestli jsou formátovat čísla přímo v bashi, to kdyžtak poradí Pichi :-)
15.6.2005 17:35 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: format promenne 001 misto 1
printf je builtin shellu, ale obávám se, že můj příklad vytváří proces :-/
15.6.2005 17:35 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: format promenne 001 misto 1
Tedy ne tak, jak jsem ho napsal, ale když to budu chtít dostat do proměnné:

ble=$(printf %03d $k)
15.6.2005 18:42 Jiri Pachman
Rozbalit Rozbalit vše Re: format promenne 001 misto 1
Odpovědět | | Sbalit | Link | Blokovat | Admin
Diky, to je presne ono. Pouzil jsem vsechno. seq na generaci rady cisel a printf na format, jelikoz v tom svojem skriptu potrebuju doplnovat do jmen souboru jedno i triciselny tvar.

JP

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.