是否有在Linux /终端的任何方法来计算,焦炭F IN纯文本文件中出现的次数?
Answer 1:
这个怎么样:
fgrep -o f <file> | wc -l
注:除了更容易记住/复制和定制,这比Vereb的回答三倍左右(对不起,编辑拙劣的第一次测试!)更快。
Answer 2:
甚至更快:
tr -cd f < file | wc -c
时间与4.9 MB和搜索字符110万个OCCURENCES文件这个命令 :
real 0m0.089s
user 0m0.057s
sys 0m0.027s
时间Vereb答案有echo
, cat
, tr
和bc
相同的文件:
real 0m0.168s
user 0m0.059s
sys 0m0.115s
时间罗布Hruska的答案与tr
, sed
和wc
为同一个文件:
real 0m0.465s
user 0m0.411s
sys 0m0.080s
时间Jefromi答案与fgrep
和wc
为同一个文件:
real 0m0.522s
user 0m0.477s
sys 0m0.023s
Answer 3:
echo $(cat <file> | wc -c) - $(cat <file> | tr -d 'A' | wc -c) | bc
其中A是字符
时间与4.9 MB和搜索字符110万个OCCURENCES文件这个命令:
real 0m0.168s
user 0m0.059s
sys 0m0.115s
Answer 4:
如果你需要做的就是计算包含你的性格线的数量,这将工作:
grep -c 'f' myfile
然而,它计算在同一行作为一个单一的比赛“F”的多次出现。
Answer 5:
tr -d '\n' < file | sed 's/A/A\n/g' | wc -l
与你的性格,和“文件”与您输入文件替换“A”的两个事件。
-
tr -d '\n' < file
:去除新行 -
sed 's/A/A\n/g
: “A”的每一次出现后增加了一个新行 -
wc -l
:计算行数
例:
$ cat file
abcdefgabcdefgababababbbba
1234gabca
$ tr -d '\n' < file | sed 's/a/a\n/g' | wc -l
9
文章来源: Count occurrences of a char in plain text file