logo
Published on

csvlintでCSVファイルの有効性を確認

Authors

プログラミングやパソコン上の作業において、CSV形式のファイルを扱う場面は多々あります。この記事では、"csvlint"ライブラリを使用し、CSVデータの文法チェック、グラマーチェック、つまり、エラーチェックを行い、その有効性を効率的に確認します。

# install

[[ ! -d "${HOME}/go" ]] && mkdir ${HOME}/go
export GOPATH=${HOME}/go
export PATH=$PATH:$GOPATH/bin

go get github.com/Clever/csvlint/cmd/csvlint
https://yuis.xsrv.jp/data/aeL5Ox5JYcVdwrK9O5bEyDLvdlE8mAc6.pngClever/csvlint: library and command line tool that validates a CSV file

エラーがあるとエラーになります

$ csvlint hoge.csv
Record #44 has error: wrong number of fields in line
Record #53 has error: wrong number of fields in line

タブ区切りのTSVはオプションを指定します

$ csvlint -delimiter "\t" hoge.csv
Warning: not using defaults, may not validate CSV to RFC 4180
Record #23 has error: wrong number of fields in line

以下のようなデータの渡し方はできないみたいです。

yuis ASUS /mnt/c/_tmp/20190708221315$ csvlint - <<< "$( data-music-csv )"
file '-' does not exist

よって、コマンドの出力結果を渡すには以下のようにします。

$ data-music-csv > $TMPDIR/tmp.csv && csvlint -delimiter "\t" $TMPDIR/tmp.csv
Warning: not using defaults, may not validate CSV to RFC 4180
file is valid