(2020-04-06 初稿 - 2021-05-05 再転記)
はじめに
columnコマンドは、テキストファイルの整形に使うものだと思っていた。
しかし、bashスクリプト内の文字列の整形にも使えることがわかった。
以下に簡単な例を示す。
ファイルの整形
$ cat temp.txt
名無しの権兵衛, 38, 神奈川県
じゅげむじゅげむ, 45, 愛知県
This is a pen, 28, アメリカ合衆国
ひゃまだ, 年齢不詳, 静岡県
$ column -t -s, temp.txt
名無しの権兵衛 38 神奈川県
じゅげむじゅげむ 45 愛知県
This is a pen 28 アメリカ合衆国
ひゃまだ 年齢不詳 静岡県
文字列の整形
#!/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コマンドを使えば、簡単に揃えることができる。