SORU
9 Ocak 2012, PAZARTESİ


Nasıl olur da hepsi aynı genişlikte ki pedi sıfır bash tamsayılar dizisi?

Bazı değerleri döngüye ihtiyacım var

for i in $(seq $first $last)
do
    does something here
done

$first $last için sabit uzunlukta 5 olmam gerekiyor. Eğer giriş ise 1, 00001 olur böyle ön sıfırları eklemek istiyorum. Örneğin 99999 kadar döngüler, ama uzunluğu 5 olmalı.

E. g.: *, , *, *1400042*13 11* *ve benzeri.

Ben bunu nasıl herhangi bir fikir?

CEVAP
9 Ocak 2012, PAZARTESİ


Muhtemelen en kolay seq 15 *bayrak biçimine almak için olsa da, belirli bir durumda bu gibi numaralar listesini verir. Örneğin:

for i in $(seq -f "g" 10 15)
do
  echo $i
done

aşağıdaki çıktıyı üretir:

00010
00011
00012
00013
00014
00015

Aşağıdaki gibi bir sıfır ile çıkış pad-DAHİLİ olarak daha genel olarak, bash printf vardır

$ i=99
$ printf "d\n" $i
00099

Başka bir değişken çıkış depolamak için -v bayrak kullanabilirsiniz:

$ i=99
$ printf -v j "d" $i
$ echo $j
00099

printf g yerine d kullanmanız gereken şekilde seq için biraz farklı bir biçimini destekler dikkat edin.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bucky Roberts

    Bucky Robert

    9 HAZİRAN 2011
  • National Geographic

    National Geo

    7 Mayıs 2006
  • TheRightTire

    TheRightTire

    14 EKİM 2009