(2020-04-06 初稿 - 2020-08-18 転記・追記)
columnコマンドは、テキストファイルの整形に使うものだと思っていました。
でも、bashスクリプト内の文字列の整形に使えることがわかりました。
以下に簡単な例を示します。
$ cat temp.txt
名無しの権兵衛, 38, 神奈川県
じゅげむじゅげむ, 45, 愛知県
This is a pen, 28, アメリカ合衆国
ひゃまだ, 年齢不詳, 静岡県
$ column -t -s, temp.txt
名無しの権兵衛 38 神奈川県
じゅげむじゅげむ 45 愛知県
This is a pen 28 アメリカ合衆国
ひゃまだ 年齢不詳 静岡県
以下のスクリプトを作成し、例えば col-testと命名します。
#!/usr/bin/env bash
# column のテスト
output_str="名無しの権兵衛, 38, 神奈川県\n"
output_str+="じゅげむじゅげむ, 45, 愛知県\n"
output_str+="This is a pen, 28, アメリカ合衆国\n"
output_str+="ひゃまだ, 年齢不詳, 静岡県\n"
echo "column の出力"
echo -e $output_str | column -t -s ,
$ chmod +x col-test
$ col-test
名無しの権兵衛 38 神奈川県
じゅげむじゅげむ 45 愛知県
This is a pen 28 アメリカ合衆国
ひゃまだ 年齢不詳 静岡県
printfコマンドでもある程度整形して出力することができますが、漢字や半角英数文字を含む文字列を整形しようとするとなかなかうまく揃えることができません。
columnコマンドを使えば、簡単に揃えることができました。