计算大文件中字符串的出现次数

时间:2016-06-25 14:47:53

标签: grep

我有一个900MB的大文件,整个文件只有一行。标签之间没有换行符。我需要计算该文件中特定标记的出现次数。

我试过

grep -o '<start tag>' filename | wc -l

我收到grep: line too long错误。

我怎样才能解决这个问题?

2 个答案:

答案 0 :(得分:0)

这里有点像黑客:

perl -ne 'BEGIN { $/ = ">"; $c = 0 } $c++ if /<start tag>/; END { print "$c\n" }' filename

这个想法是绕过&#34;线&#34;由>而不是\n(换行符)终止的。这应该避免&#34;行太长&#34;错误。

答案 1 :(得分:0)

只需使用awk:

awk -F'<start tag>' '{print NF-1}' file

如果失败,您可以使用GNU awk(对于多字符RS)执行此操作:

awk -v RS='<start tag>' 'END{print NR-1}' file