我试图计算次数'('出现在文件中。我收到一个号码,但它从来都不准确。
为什么赢得grep准确计算出这个角色的出现次数。它必须是多行的并且每次出现。
我想我的正则表达式已关闭,但它很简单。
log.txt的:
(eRxîó¬Pä^oË'AqŠêêÏ-04ây9Í&ñÖbèaïÄ®h0FºßôÊ$&Ð>0dÏ“ ²ˆde^áäÖÚƒíZÝ*ö¨tM
variable 1
paren )
(¼uC¼óµr\=Œ"J§ò<ƒu³ÓùËP
<åÐ#ô{ô
½ÊªÆÏglTµ¥>¦³éùoÏWÛz·ób(ÈIH|TT]
variable 0
paren )
输出:
$ grep -o "(" log.txt | wc -l
1
修改
我有一个奇怪的编码混合,所以我转储它然后计算十六进制值。
hexdump -C hex.txt | grep "28" | wc -l
答案 0 :(得分:1)
如果您在多字节语言环境中解释单字节编码,则可能会遇到编码问题。这是一种删除除(
之外的所有内容(在单字节语言环境中),然后计算剩余字符的方法:
LC_ALL=C <log.txt tr -c -d '(' | wc -c
答案 1 :(得分:0)
转储未知编码并计算十六进制值。
hexdump -C hex.txt | grep "28" | wc -l
答案 2 :(得分:0)
使用sed(而不是用wc计数,因为只有在sed中它才有点重)
sed -e '1h;1!h;$!d' -e 'x;s/[^(]//g' yourfile | wc -c
使用awk
awk -F '(' '{ Total += NF - 1 } END { print Total }' YourFile