用于获取CSV文件中的行数的Unix命令

epfja78i  于 2022-10-17  发布在  Unix
关注(0)|答案(6)|浏览(262)

嗨,我是新手,我必须从传入的CSV文件中获得行数。我使用了以下命令来获取计数。

wc -l filename.csv

考虑带有1记录的文件,IAM在开始时得到一些带有*的文件,如果我发出相同的命令IAM GET COUNT AS 0,则对于这些文件。*在这里有什么意义吗?如果我得到一个使用ctrlm(CR)而不是nl的文件,如何获得该文件中的行数。给我一个解决问题的命令。先谢谢你。

bwitn5fc

bwitn5fc1#

下面的查询帮助您获取计数

cat FILE_NAME  | wc -l
ttcibm8c

ttcibm8c2#

所有的答案都是错误的。CSV文件接受引号之间的换行符,这些换行符仍应被视为同一行的一部分。如果您的计算机上安装了Python或PHP,则可能会执行以下操作:

Python

//From stdin
cat *.csv | python -c "import csv; import sys; print(sum(1 for i in csv.reader(sys.stdin)))"

//From file name
python -c "import csv; print(sum(1 for i in csv.reader(open('csv.csv'))))"

PHP

//From stdin
cat *.csv | php -r 'for($i=0; fgetcsv(STDIN); $i++);echo "$i\n";'

//From file name
php -r 'for($i=0, $fp=fopen("csv.csv", "r"); fgetcsv($fp); $i++);echo "$i\n";'

我还创建了一个脚本来模拟wc -lhttps://github.com/dhulke/CSVCount的输出

mfuanj7w

mfuanj7w3#

如果同一文件夹中有多个.csv文件,请使用
cat *.csv | wc -l
以获取当前目录中所有csv文件的总行数。因此,-c计算字符,-m计算字节(只要您使用ASCII,则相同)。您也可以使用wc来计算文件的数量,例如:ls -l | wc -l

ukxgm1gy

ukxgm1gy4#

Wc-l mytext文件
或者只输出行数:
Wc-l<my文本文件

Usage: wc [OPTION]... [FILE]...
or:  wc [OPTION]... --files0-from=F
Print newline, word, and byte counts for each FILE, and a total line if
more than one FILE is specified.  With no FILE, or when FILE is -,
read standard input.
  -c, --bytes            print the byte counts
  -m, --chars            print the character counts
  -l, --lines            print the newline counts
  --files0-from=F    read input from the files specified by
                       NUL-terminated names in file F;
                       If F is - then read names from standard input
  -L, --max-line-length  print the length of the longest line
  -w, --words            print the word counts
  --help     display this help and exit
  --version  output version information and exit
c0vxltue

c0vxltue5#

您也可以使用xsv来实现这一点。它还支持许多对CSV文件有用的其他子命令。
xsv count file.csv

enxuqcxy

enxuqcxy6#

ECHO$(wc-l文件名.csv|awk‘{print$1}’)

相关问题