いろいろ備忘録日記

主に .NET とか Java とか Python絡みのメモを公開しています。最近Go言語勉強中。

ターミナル上でcsvファイルを見る際のコマンドメモ

概要

私の場合、たまに以下のような状況があります。。。

OSはLinux。でも何故か文字コードがShift-JISで作られた列がめっちゃ多いCSVファイルがあって、その中に重要な値が記載されている。その値を見たい。。。。

さらに場合によっては、OS自体も古くて、文字コードがEUC-JPだったりしたりする場合もあり。。

そのまま見ると、当然文字化けするので nkf 挟んだりして見ようとするけど、往々にしてこんなクソファイルってのは列がめっちゃ多い。

vimで開いても、カンマだらけで見てられない。

自分ならこんなクソファイル絶対作らないですが、仕事なので仕方ないですよね。

Windowsに持ってきて、一旦ExcelなりCSVをキレイにテーブル上にして見せてくれるエディタとかで見ればいいんですが、いかんせん面倒くさい。

CSVファイルを見やすくするコマンド

ってとき、私はたまに以下のようなコマンドで見ています。よく忘れるのでここにメモ。

サンプルとして利用させてもらったCSVファイルは以下のものです。

www.e-stat.go.jp

$ nkf -S -u c01.csv | head -n 15 | cut -d, -f1-7 | column -s, -t
"都道府県コード"  "都道府県名"  "元号"  "和暦(年)"  "西暦(年)"  ""  "人口(総数)"
"00"              "全国"        "大正"  9             1920          ""    55963053
"01"              "北海道"      "大正"  9             1920          ""    2359183
"02"              "青森県"      "大正"  9             1920          ""    756454
"03"              "岩手県"      "大正"  9             1920          ""    845540
"04"              "宮城県"      "大正"  9             1920          ""    961768
"05"              "秋田県"      "大正"  9             1920          ""    898537
"06"              "山形県"      "大正"  9             1920          ""    968925
"07"              "福島県"      "大正"  9             1920          ""    1362750
"08"              "茨城県"      "大正"  9             1920          ""    1350400
"09"              "栃木県"      "大正"  9             1920          ""    1046479
"10"              "群馬県"      "大正"  9             1920          ""    1052610
"11"              "埼玉県"      "大正"  9             1920          ""    1319533
"12"              "千葉県"      "大正"  9             1920          ""    1336155
"13"              "東京都"      "大正"  9             1920          ""    3699428

文字コードをsjisからutf-8に変換して、先頭15行分に対して、7列分の列のみを抽出して、表形式にして表示。

本当に コマンド って便利ですよね。ソートしたい場合は sort コマンド挟んでやればいいだけです。

参考情報

blanktar.jp


過去の記事については、以下のページからご参照下さい。

  • いろいろ備忘録日記まとめ

devlights.github.io

サンプルコードは、以下の場所で公開しています。

  • いろいろ備忘録日記サンプルソース置き場

github.com

github.com

github.com