両側にパディングを使用したテキストの中央揃え

両側にパディングを使用したテキストの中央揃え

列の幅が入力の最長行になるようにテキストを中央に揃え、両側にパディングを揃える簡単な方法はありますか?

たとえば、次のようになります。

aaa
bbbb
c
ddddd
ee

次のようになります(ドットはスペースを表します)。

.aaa.
bbbb.
..c..
ddddd
.ee..

どんなツールでも可能です。sedそれawkまたは多くのcoreutilsツールの一つです。

編集する:出力結果を誤解した方もいらっしゃるようです。出力が入力されます。スペース、ポイントではありません。ここでは、より明確にするために点を使用しています。

ベストアンサー1

vimを使用できます。通常モードでは:

:%center 5

...ファイルの各行に対して動作し(この場合は意味%)、最大5文字まで囲みます(vimドキュメントでは列と呼ばれます)。これはあなたが説明するものと正確に一致します。ファイルから最も長い行を取得するには(centerコマンドの場合)、wc -L file.txtvimから。

:! wc -L %

残念ながら、これはバニラviでは使用できませんが、「linux」というタグが付いているため、リポジトリには少なくともvimがあります。

1行でこれを行うこともできます。

vim file.txt -c '%center 5' -c 'wq' &> /dev/null

...しかし、それが仕事をする最速の方法ではないと確信しています。

おすすめ記事