Bash 计算文件中给定字符的数目
我需要在bash中计算文件中给定(单字节)字符的数量。例如:计算逗号、点或大写字母“C”或。。。任何其他字符 基本上,我需要一个通用版本的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 要在单个命令中完成此操
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是所有方法中最快的。