有没有内置命令可以做到这一点,或者有没有任何脚本可以实现这一功能?
我想要计算一个特定字符串(而不是单词)在文件中出现的次数。这可以包括每行多个出现,因此计数应该计算每个出现次数,而不是只为具有2次或更多次字符串的行计数1次。
例如,对于这个样本文件:
blah(*)wasp( *)jkdjs(*)kdfks(l*)ffks(dl
flksj(*)gjkd(*
)jfhk(*)fj (*) ks)(*gfjk(*)
如果我想要统计字符串
(*)
出现的次数,我会期望计数为6,即第一行有2个,第二行有1个,第三行有3个。请注意,第2-3行之间由换行符隔开,因此不应该计算为一个出现次数。
更新: 迄今为止回答得非常好!我能否请求脚本处理(*)
转换为\(*\)
等的转换呢?这样我就可以只传递任何所需的字符串作为输入参数,而不用担心需要对其进行哪些转换以使其显示在正确的格式中。
quotemeta
函数,还是在正则表达式中使用\Q
和\E
? - DavidO