文字列の末尾のスペースを別の文字で埋めます。

文字列の末尾のスペースを別の文字で埋めます。

出力したいhello world20文字以上。

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で始まる部分文字列、$stringvalueの長さ。${filler:${#string}}$filler${#string}

出力の全幅はまたはの最$filler大幅になります$string

jot以下を含むシステムの場合

filler=$( jot -s '' -c 16 '=' '=' )

=1行あたり16個)。 GNUシステムは次のものを使用できますseq

filler=$( seq -s '=' 1 16 | tr -dc '=' )

他のシステムでは、Perlまたは動的に文字列を生成する他のより高速な方法を使用できます。

おすすめ記事