1. ホーム
  2. linux

[解決済み] CSVなどの表形式ファイルをコマンドラインから閲覧する【終了】。

2022-03-14 11:32:32

質問

Linux/OS X 用のコマンドライン CSV ビューアをご存知の方はいらっしゃいませんか? 私は、次のようなものを考えています。 less しかし、それはより読みやすい方法で列をスペースアウトします。 (OpenOfficeのCalcやExcelで開いてもいいのですが、それだと、ただ単に 見る のようなデータを見る必要がある) 水平・垂直方向のスクロールができれば最高です。

解決方法は?

また、これを利用することもできます。

column -s, -t < somefile.csv | less -#2 -N -S

column は標準的な Unix プログラムで、各列の適切な幅を求め、テキストをきれいに整形された表として表示する、非常に便利なものです。

注意:空のフィールドがあるときはいつでも、そこに何らかのプレースホルダーを置く必要があります。そうしないと、そのカラムは後続のカラムと統合されてしまうからです。次の例では sed を使用してプレースホルダーを挿入します。

$ cat data.csv
1,2,3,4,5
1,,,,5
$ sed 's/,,/, ,/g;s/,,/, ,/g' data.csv | column -s, -t
1  2  3  4  5
1           5
$ cat data.csv
1,2,3,4,5
1,,,,5
$ column -s, -t < data.csv
1  2  3  4  5
1  5
$ sed 's/,,/, ,/g;s/,,/, ,/g' data.csv | column -s, -t
1  2  3  4  5
1           5

の置き換えに注意してください。 ,, に対して , , が2回行われます。1回だけ行う場合 1,,,4 になります。 1, ,,4 というのは、2つ目のカンマがすでにマッチしているからです。