Regex 每行计数模式出现次数
所需的输出为每行保留前两个“列”,并在同一行上添加“word”的出现次数 输入:Regex 每行计数模式出现次数,regex,unix,sed,awk,Regex,Unix,Sed,Awk,所需的输出为每行保留前两个“列”,并在同一行上添加“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 期望输
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
期望输出:
string1 string2 2
string3 string4 3
string5 string6 4
有什么建议吗?我忽略了,以下是如何使用awk:
awk '{count=0;
for(i=3; i <= NF; i++) {if($i=="word") { count++ }};
print $1, $2, count; }' inputfile
awk'{count=0;
对于(i=3;i使用awk
awk '{print $1,$2,gsub(/word/,"")}' file
string1 string2 2
string3 string4 3
string5 string6 4
解释
- 函数的作用是:返回替换的次数
+1非常聪明!您可能想使用/\/
来确保它不计算包含单词的单词。很好且简单的方法。谢谢!这种“gsub”方法确实是一种简单而有效的解决方案!如果第1行是string1 string2 aawordaaaaaaaaaaaaaa word
,那么该行的输出计数是2还是3?如果word>呢
作为string1或string2的一部分出现?