如何计算文档中的行数?
我有这样的线条,我想知道我实际上有多less线…
09:16:39 AM all 2.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 94.00 09:16:40 AM all 5.00 0.00 0.00 4.00 0.00 0.00 0.00 0.00 91.00 09:16:41 AM all 0.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 96.00 09:16:42 AM all 3.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 96.00 09:16:43 AM all 0.00 0.00 1.00 0.00 1.00 0.00 0.00 0.00 98.00 09:16:44 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 09:16:45 AM all 2.00 0.00 6.00 0.00 0.00 0.00 0.00 0.00 92.00
有没有一种方法可以使用linux命令统计它们?
使用wc
:
wc -l <filename>
这将输出<filename>
的行数:
$ wc -l /dir/file.txt 3272485 /dir/file.txt
或者,从结果中省略<filename>
使用wc -l < <filename>
:
$ wc -l < /dir/file.txt 3272485
您也可以将数据传输到wc
:
$ cat /dir/file.txt | wc -l 3272485 $ curl yahoo.com --silent | wc -l 63
要统计所有线路使用:
$ wc -l file
要仅使用图案过滤和计数线条:
$ grep -w "pattern" -c file
或使用-v来反转匹配:
$ grep -w "pattern" -c -v file
请参阅grep手册页以查看-e,-i和-x参数
wc -l <file.txt>
要么
command | wc -l
有很多方法。 使用wc
是一个。
wc -l file
其他包括
awk 'END{print NR}' file
sed -n '$=' file
(GNU sed)
grep -c ".*" file
工具wc
是UNIX和类UNIX操作系统中的“字计数器”,您还可以通过添加-l
选项来使用它来对文件中的行进行计数,因此wc -l foo
将计算foo
的行数。 你也可以像这样pipe道输出: ls -l | wc -l
ls -l | wc -l
,它会告诉你当前目录中有多less个文件。
使用wc
:
wc -l <filename>
如果要检查目录中所有文件的总行,可以使用find和wc:
find . -type f -exec wc -l {} +
如果所有你想要的是行数(而不是行数和愚蠢的文件名称回来):
wc -l < /filepath/filename.ext
如前所述,这些也工作(但由于其他原因而较差):
awk 'END{print NR}' file # not on all unixes sed -n '$=' file # (GNU sed) also not on all unixes grep -c ".*" file # overkill and probably also slower
像这样使用nl
:
nl filename
从man nl
:
将每个FILE写入标准输出,并添加行号。 如果没有FILE,或者FILE是 – 读取标准input。
我一直在使用这个:
cat myfile.txt | wc -l
我更喜欢它接受的答案,因为它不打印文件名,你不必使用awk
来解决这个问题。 接受的答案:
wc -l myfile.txt
但我认为最好的一个是GGB667的答案:
wc -l < myfile.txt
我可能会从现在开始使用它。 这比我的方式略短。 如果有人愿意,我会采取我以前的做法。 输出与这两种方法相同。
以上是首选的方法,但“猫”命令也可以帮助:
cat -n <filename>
将以行号显示文件的全部内容。
wc -l file.txt | cut -f3 -d" "
只返回行数
当我正在寻找一种计算多个文件行的方法时,我看到了这个问题,所以如果要计算一个.txt文件的多个文件行,可以这样做,
cat *.txt | wc -l
它也将在一个.txt文件上运行;)
将文件的输出redirect/configuration到wc -l
应该就足够了,如下所示:
cat /etc/fstab | wc -l
然后提供否。 只有线。
我只是做了一个程序来做到这一点(与node
)
npm install gimme-lines gimme-lines verbose --exclude=node_modules,public,vendor --exclude_extensions=html
cat file.log | wc -l | grep -oE '\d+'
-
grep -oE '\d+'
:只为了返回数字。
正如其他人所说, wc -l
是最好的解决scheme,但为了将来的参考,你可以使用Perl:
perl -lne 'END { print $. }'
$.
包含行号和END
块将在脚本END
时执行。
我知道这是旧的,但仍然: 计数过滤的线
我的文件如下所示:
Number of files sent Company 1 file: foo.pdf OK Company 1 file: foo.csv OK Company 1 file: foo.msg OK Company 2 file: foo.pdf OK Company 2 file: foo.csv OK Company 2 file: foo.msg Error Company 3 file: foo.pdf OK Company 3 file: foo.csv OK Company 3 file: foo.msg Error Company 4 file: foo.pdf OK Company 4 file: foo.csv OK Company 4 file: foo.msg Error
如果我想知道有多less个文件发送OK:
grep "OK" <filename> | wc -l
要么
grep -c "OK" filename