计算每行的模式发生

use*_*323 5 regex unix awk sed

所需的输出为每一行保留前两个"列",并在同一行上添加"word"的出现次数.

输入:

string1 string2 aaaaaaaaa word aaaaaaaa word  
string3 string4 ccccccccccc word dddaaaaaaacccd word dddddaaaaa word bbbb  
string5 string6 aaaa word bbbbbbaddd word aaaaa word ccccccdddddddddd word cccccc
Run Code Online (Sandbox Code Playgroud)

期望的输出:

string1 string2 2  
string3 string4 3  
string5 string6 4
Run Code Online (Sandbox Code Playgroud)

有什么建议?

BMW*_*BMW 12

使用awk

awk '{print $1,$2,gsub(/word/,"")}' file
string1 string2 2
string3 string4 3
string5 string6 4
Run Code Online (Sandbox Code Playgroud)

说明

  • gsub()函数返回所做的替换次数.

  • +1非常聪明!您可能希望使用`/\<word \> /`来确保它不会计算包含单词的单词. (2认同)