csvファイルを処理する強力なコマンドラインツールはありますか?

csvファイルを処理する強力なコマンドラインツールはありますか?

私はCSVファイルで作業し、時にはコマンドラインで行または列の内容をすばやく確認する必要があります。ほとんどの場合cut、、、、および友達は仕事をしますが、headカットtailは次の作業を簡単に処理できません。

"this, is the first entry", this is the second, 34.5

ここで、最初のカンマは最初のフィールドの一部ですが、cut -d, -f1同意しません。ソリューションを自分で書く前に、そのタスクに既に存在する良いツールを知っている人がいるかどうか疑問に思います。少なくとも上記の例を処理し、CSV形式のファイルから列を返すことができるはずです。他の望ましい機能には、最初の行に指定された名前に基づいて列を選択する機能、追加の引用スタイルのサポート、タブで区切られたファイルのサポートなどがあります。

そのようなツールについてはわかりませんが、Bash、Perl、Python、または他の一般的なスクリプト言語でそのようなプログラムを実装するための提案がある場合は、その提案には気にしません。

答え1

パーティーに少し遅れているかもしれませんが、言及するもう一つのツールがあります。csvkit

これには、次のことができる多くのコマンドラインツールがあります。

  • CSV ファイル形式を再指定します。
  • さまざまな形式(JSON、SQL、XLS)をCSVに変換し、
  • cutその他grepは同じですsortが、CSVをサポートしています。
  • 異なるCSVファイルをリンクします。
  • CSVファイルのデータに対して通常のSQLクエリを実行します。

答え2

Pythonを使用できますcsv基準寸法。

簡単な例:

import csv
reader = csv.reader(open("test.csv", "r"))
for row in reader:
    for col in row:
        print col

答え3

ミラーCSV(ヘッダーを含む)を含む名前ベースのデータを操作するためのもう1つの素晴らしいツールです。名前を気にせずにCSVファイルの最初の列を抽出するには、次のようにします。

printf '"first,column",second,third\n1,2,3\n' |
  mlr --csv -N cut -f 1

答え4

おすすめしたいxsv、「Rustで書かれた高速CSVコマンドラインツールキット」です。

作成者:リップグラブ作家。

におすすめCSV処理速度を142倍速くする方法レディットトピック)。

関連情報