LoginSignup
3
2

More than 5 years have passed since last update.

指定したカラムのみを表示するコマンド

Last updated at Posted at 2015-10-26

コマンド説明

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内で特定カラム位置をハイライトする方法もあるのでこちらも合わせてぜひ。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2