ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

columnで文字列の整形

(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           アメリカ合衆国

ひゃまだ                年齢不詳 静岡県

 文字列の整形

以下のスクリプトを作成し、例えば 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コマンドを使えば、簡単に揃えることができる。