コマンドを使用して列を中央揃えしようとしていますcolumn
。
出力は次のようになります。
temperatures
50
12
89
63
どうすればいいですか?
ベストアンサー1
私はあなたがそのコマンドを使用したいことを知る前にこの答えを書きましたが、column
それが必要でない場合は、次のbash
シェルスクリプトを使用してテキストを中央に合わせることができます。
#!/bin/bash
set -e # exit the script if something goes wrong
width=12
data="temperatures 50 12 89 63"
for word in $data; do
strlen=$(printf $word | wc -c)
w=$(( ($width - $strlen)/2 ))
printf "%${w}s%s\n" "" $word
done
仕組み:
$width
列の幅ですfor
印刷された各単語を繰り返します。$data
$strlen
現在の単語の長さ(バイト)。$w
中央に置く単語の前に印刷されるスペースの数。printf
$w
スペースの後に単語を印刷します。
出力:
temperatures
50
12
89
63
このスクリプトは、シングルバイトのテキストエンコーディングでのみ機能します。strlen
インクルードを処理するには、この行を変更する必要があります。