যদি সেই অক্ষরগুলি সমস্ত একক-বাইট হয়, তবে এটি যদি আপনি এমন কোনও লোকালে থাকেন যেখানে চরসেটটি একক-বাইট (যেমন iso8859-1) হয় বা লোকেলের অক্ষরটি UTF-8 হয় তবে পাঠ্যটি কেবল ASCII হয়, আপনি করতে পারেন :
printf -v y %-40.40s "$y"
এটি কাটা এবং প্যাড উভয়ই কভার করবে।
যদি তা না হয় তবে আপনি সর্বদা 40 টি স্পেস যুক্ত করতে পারেন এবং আপনার ${y:0:40}পদ্ধতির ব্যবহার করতে পারেন ।
printf -v pad %40s
y=$y$pad
y=${y:0:40}
zsh বাম এবং ডান প্যাডিংয়ের জন্য নিবেদিত অপারেটর রয়েছে:
y=${(r:40:)y}
(এছাড়াও কাটা কাটা)। zshএর printfবাইট পরিবর্তে অক্ষর সংখ্যা, তাই হতো না bashউপরে গুলি ইস্যু '। তবে নোট করুন যে বিকল্পটির zshজন্য আপনার 5.3 বা আরও নতুন প্রয়োজন -v।
আপনি যদি এমন অক্ষরের মুখোমুখি হয়ে থাকেন যেগুলির সকলের প্রস্থ একই থাকে না তবে আরও তথ্যের জন্য সম্পর্কিত প্রশ্নের এই উত্তরটিও দেখুন ।