web-dev-qa-db-ja.com

CSVファイルの行数を取得するUnixコマンド

着信CSVファイルから行数を取得する必要があります。

次のコマンドを使用してカウントを取得しました。

wc -l filename.csv

1つのレコードが含まれているファイルを考えてみます。\*開始時、およびこれらのファイルに対して上記のコマンドを発行すると、0

なぜ\*ファイルの先頭でカウントされた行として登録されず、回避策はありますか?

23
Devoloper250

終了していない行も確実にカウントされるようにするトリックは次のとおりです。

cat filename.csv | xargs -l echo | wc -l

これはすべての空でない行を数えるようですが、空の行をスキップします。

これはかなり効果がありませんが、通常の使用では問題にならないことに注意してください。

別の可能性として、終了していない最後の行を含むすべての行をカウントします。

awk '{n+=1} END {print n}' filename.csv

RHEL 6.2でテスト済み。 YMMV。

10
Trygve Flathen

wcは、1行のみで末尾の改行がないファイルに対して0を報告します。多分あなたの1レコードのcsvファイルはこのようなものですか? hexdumpを使用して、末尾の改行を探すことができます。例:

hexdump -C fn.csv

最後にASCIIコード0aを探します。

1
Trygve Flathen