Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 计算文件中给定字符的数目_Bash_Unix - Fatal编程技术网

Bash 计算文件中给定字符的数目

Bash 计算文件中给定字符的数目,bash,unix,Bash,Unix,我需要在bash中计算文件中给定(单字节)字符的数量。例如:计算逗号、点或大写字母“C”或。。。任何其他字符 基本上,我需要一个通用版本的wc-l来计算某个文件中包含的任何单字节字符(不仅仅是新行) 我必须使用非常大的文件(几GB),所以它必须是快速和资源效率。理想情况下,如果必须计算新的行数,则与wc-l具有相同的性能水平。您可以将grep-o与wc-l一起使用。e、 g.要计算输入文件中字母C的#,请执行以下操作: grep -Fo 'C' file | wc -l 要在单个命令中完成此操

我需要在bash中计算文件中给定(单字节)字符的数量。例如:计算逗号、点或大写字母“C”或。。。任何其他字符

基本上,我需要一个通用版本的
wc-l
来计算某个文件中包含的任何单字节字符(不仅仅是新行)


我必须使用非常大的文件(几GB),所以它必须是快速和资源效率。理想情况下,如果必须计算新的行数,则与
wc-l
具有相同的性能水平。

您可以将
grep-o
wc-l
一起使用。e、 g.要计算输入文件中字母
C
的#,请执行以下操作:

grep -Fo 'C' file | wc -l
要在单个命令中完成此操作,您可以将
gnu awk
与自定义
RS
一起使用:

awk -v RS='C' 'END{print NR-1}' file

您可以将
grep-o
wc-l
一起使用。e、 g.要计算输入文件中字母
C
的#,请执行以下操作:

grep -Fo 'C' file | wc -l
要在单个命令中完成此操作,您可以将
gnu awk
与自定义
RS
一起使用:

awk -v RS='C' 'END{print NR-1}' file

在这里发布一些测试的结果,以便于记录。。。 我确实计算了一个包含1807076940字节和100ML行的文件中的点数。每行仅包含一个点:

$ time wc -l xnorm.dat # takes 1.047 seconds(this count new-lines)
$ time grep -o '\.' xnorm.dat | wc -l # takes 87.443 seconds
$ time awk -v RS='.' 'END{print NR-1}' xnorm.dat # takes 53.947 seconds
$ time tr -d -C '\.' < xnorm.dat | wc -c # takes 3.732 seconds

在这里发布一些测试的结果,以便于记录。。。 我确实计算了一个包含1807076940字节和100ML行的文件中的点数。每行仅包含一个点:

$ time wc -l xnorm.dat # takes 1.047 seconds(this count new-lines)
$ time grep -o '\.' xnorm.dat | wc -l # takes 87.443 seconds
$ time awk -v RS='.' 'END{print NR-1}' xnorm.dat # takes 53.947 seconds
$ time tr -d -C '\.' < xnorm.dat | wc -c # takes 3.732 seconds

只需用C编写一个简单的程序。它既简单又高效。@4ae1e1:同意。。。用C编写了一个程序,一次比较一个单词(方法与
wc
相同)。在下面更新我的结果…只需用C编写一个简单的程序。它既简单又高效。@4ae1e1:同意。。。用C编写了一个程序,一次比较一个单词(方法与
wc
相同)。在下面更新我的结果…我最近有一个类似的要求,过滤非常大的文本文件(>1Gb),AWK是所有方法中最快的。我最近有一个类似的要求,过滤非常大的文本文件(>1Gb),AWK是所有方法中最快的。