いいcsv viewerがなかったので作った。

sjisの巨大CSVファイルの特定の行を確認するのにいちいちアプリケーション開くの面倒なので十五分ぐらいで作った。

# view_csv.rb

require 'csv'
# 使い方:ruby view_csv.rb ファイル名 表示させたい列
# 例 ruby view_csv.rb test.csv 3

file = ARGV[0]
show_line_num = ARGV[1].to_i

counter = 0
header = []
line = []

CSV.foreach(file,"r:sjis")do |row|
    if counter == 0
       header = row 
    end
    
    if counter == show_line_num 
        line = row
        break 
    end 
    counter += 1 
end

max = header.map{|h| h.length}.max

for i in 0...header.length 
    space =  " "*(max -header[i].length)+" | "
    puts  header[i]+space+line[i]
end