Небольшой поворот в ответе kirill_igum, и вы можете легко посчитать количество столбцов в любой определенной строке, которую вы хотите, и именно поэтому я пришел к этому вопросу, даже если вопрос задает весь файл. (Хотя, если ваш файл имеет одинаковые столбцы в каждой строке, это, конечно, также работает):
head -2 file |tail -1 |tr '\t' '\n' |wc -l
Дает количество столбцов строки 2.
Замените 2 на 55, например, чтобы получить его для строки 55.
-bash-4.2$ cat file
1 2 3
1 2 3 4
1 2
1 2 3 4 5
-bash-4.2$ head -1 file |tail -1 |tr '\t' '\n' |wc -l
3
-bash-4.2$ head -4 file |tail -1 |tr '\t' '\n' |wc -l
5
Код выше работает, если ваш файл разделен вкладками, как мы определяем его как "tr". Если в вашем файле есть другой разделитель, скажем запятые, вы все равно можете подсчитать «столбцы», используя тот же прием, просто изменив символ разделителя «t» на «,»:
-bash-4.2$ cat csvfile
1,2,3,4
1,2
1,2,3,4,5
-bash-4.2$ head -2 csvfile |tail -1 |tr '\,' '\n' |wc -l
2