- Published on
csvlintでCSVファイルの有効性を確認
- Authors
- Name
- Shou Arisaka / 有坂翔
プログラミングやパソコン上の作業において、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
エラーがあるとエラーになります
$ 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