Hogyan lehet Perlben az egyjegyű számokat 0-val kezdeni és két karakterrel leírni? Lásd alább
egy listát kell sorszámoznom, és ez működik, csak az a baj vele, hogy 1,2,3 helyett 01, 02, 03-at szeretnék, vagy 0 helyett lehet szóköz is
cat -n todo-list.txt | perl -pe "s/^\s*(\d+)\s+/\1 /" >> numbered-todo-list.txt
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Itt a printf-t kell használni: perl -e '$a = 5; printf "%02d\n", $a'
itt a %d azt jelenti, hogy egy számot vár a printf függvény
a %2d azt jelenti, hogy a kiírt string minimum 2 karakterből fog állni.
a %02d azt jelenti, hogy ha a szám csak 1 karakterből áll, akkor egy nullát for tenni a szám elé (amúgy spacet tesz).
my $a = 5;
printf "%02d\n", $a # 05
printf "%002d\n", $a # 005
Itt többet is olvashatsz a printf-ről, mert ez tényleg csak a jéghegy csúcsa: [link]
(amúgy szerintem valami nem stimmel a regexpeddel... mit cserélsz mire? a \l lowercase karaktert jelöl.)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!