How to get CSV dimensions from terminal

user2763361 picture user2763361 · Nov 2, 2013 · Viewed 9.5k times · Source

Suppose I'm in a folder where ls returns Test.csv. What command do I enter to get the number of rows and columns of Test.csv (a standard comma separated file)?

Answer

jkshah picture jkshah · Nov 2, 2013

Try using awk. It's best suited for well formatted csv file manipulations.

awk -F, 'END {printf "Number of Rows : %s\nNumber of Columns = %s\n", NR, NF}' Test.csv

-F, specifies , as a field separator in csv file.

At the end of file traversal, NR and NF have values of number of rows and columns respectively


Another quick and dirty approach would be like

# Number of Rows
cat Test.csv | wc -l

# Number of Columns
head -1 Test.csv | sed 's/,/\t/g' | wc -w