出力したいhello world
20文字以上。
printf "%-20s :\n\n" 'hello world!!'
# Actual output
hello world!! :
# Wanted output
hello world!!========:
しかし、私は空白にしたくない」=「その逆です。どうすればいいですか?
ベストアンサー1
filler='===================='
string='foo'
printf '%s\n' "$string${filler:${#string}}"
与える
foo=================
${#string}
offsetで始まる部分文字列、$string
valueの長さ。${filler:${#string}}
$filler
${#string}
出力の全幅はまたはの最$filler
大幅になります$string
。
jot
以下を含むシステムの場合
filler=$( jot -s '' -c 16 '=' '=' )
(=
1行あたり16個)。 GNUシステムは次のものを使用できますseq
。
filler=$( seq -s '=' 1 16 | tr -dc '=' )
他のシステムでは、Perlまたは動的に文字列を生成する他のより高速な方法を使用できます。