Bu karakterlerin tümü tek baytsa, yani karakter kümesinin tek bayt olduğu bir yerdeyseniz (iso8859-1 gibi) veya yerel ayarın karakter takımı UTF-8 ise, ancak metin yalnızca ASCII ise, :
printf -v y %-40.40s "$y"
Bu hem kesmeyi hem de yastığı kapsayacaktır.
Değilse, her zaman 40 boşluk ekleyebilir ve ${y:0:40}yaklaşımınızı kullanabilirsiniz .
printf -v pad %40s
y=$y$pad
y=${y:0:40}
zsh sol ve sağ dolgu için özel operatörlere sahiptir:
y=${(r:40:)y}
(ayrıca kesme). zsh'nin printfbayt yerine karakter cinsinden sayılması, bu yüzden bashyukarıdaki sorun olmazdı . Ancak zsh,-v seçenek .
Aynı genişliğe sahip olmayan karakterlerle karşılaşıyorsanız daha fazla ayrıntı için ilgili soruya verilen bu yanıta bakın .