我需要计算文件每行中控件A字符的数量而且我完全难倒,因为我不知道控件A字符的正则表达式是什么。
答案 0 :(得分:5)
计算每行^ A的出现次数(作为perl one-liner):
perl -ne '{print tr/\cA//, $/}' file
计算^ A的总出现次数:
perl -ne '{$c += tr/\cA//}END{print $c, $/}' file
(编辑:修正错字)
答案 1 :(得分:3)
这似乎有效:
#!/usr/bin/perl -n
s/[^\001]//g;
$count += length;
END {print "$count\n"}
或者,对于每一行的计数:
#!/usr/bin/perl -n
s/[^\001]//g;
print length, "\n";
答案 2 :(得分:1)
试试这个
$_ = '^Axyz^Apqr';
$match= tr/^A/^A/;
将给出
$match=2;
在Gvim中,您可以通过按Ctrl + v然后按Ctrl + a
来插入控件A.答案 3 :(得分:1)
嗯,没想到使用tr
:
perl -ne '{print s/\cA//g, $/}'
s/to/from/g
返回替换字符串的次数。 tr/x/y/
返回替换的字符数。在这种情况下,tr/x/y/
会起作用,但是你正在寻找一个字符串,而不是一个字符,你就会遇到麻烦。
我最初虽然m/regex/g
可行,但事实证明它只会返回1
或0
。 Drats。
答案 4 :(得分:1)
您正在尝试计算字节01的出现次数。它可以用tr ///和m //表示多种方式,包括\cA
和\x01
。
perl -nE'say "$.: ", tr/\cA//' file
perl -nE'say "$.: " . ( ()=/\cA/g )' file