コマンド説明
csv [ファイル名] [カラム位置]
ソース
.bashrcに定義する(別にシェルを作ってもいいけど短いので)
.bashrc
alias csv=csv_column
# 指定したカラム位置の列を表示する
function csv_column() {
if [ -z $1 ]; then # ファイル名の指定がない場合
echo "ファイル名を指定してください"
elif [ -z $2 ]; then # カラム数の指定がない場合は全てを整形して表示
command column -s , -t $1
elif expr "$2" : '^[0-9]*$' > /dev/null ; then # カラム数に応じた列を表示
command cat $1 | awk 'BEGIN {FS=",";OFS=","} {print $'$2'}'
else
echo "${2}:数値を入力してください"
fi
}
使い方
以下のようなCSVファイルがあるとする。
$ cat hoge.csv
hoge,piyo,fuga
11,22,33
AAA,BBB,CCC
あ,い,う
test1,test2,test3
●ファイル名だけを指定すると整形をして表示
csv [ファイル名]
$ csv hoge.csv
hoge piyo fuga
11 22 33
AAA BBB CCC
あ い う
test1 test2 test3
●カラム位置の数値を指定すると指定したカラムだけを表示
csv [ファイル名] [カラム位置]
$ csv hoge.csv 1
hoge
11
AAA
あ
test1
$ csv hoge.csv 2
piyo
22
BBB
い
test2
$ csv hoge.csv 3
fuga
33
CCC
う
test3
「csv hoge.csv 2 | less
」などとすると長いCSVファイルも表示できる。
vim内で特定カラム位置をハイライトする方法もあるのでこちらも合わせてぜひ。