正在查找一个正则表达式,该正则表达式将匹配仅包含两个相同字符实例的单词。
所以假设你正在寻找只有两个字符“s”实例的单词。
测试测试Sam助手通过lessclose会话
所以从上面只能选择“Tests”和“pass”,因为它是唯一有两个's'实例的单词
最佳答案
单向使用GNU awk
:
如果只搜索两个小写“s”字符:
awk '{ for (i=1; i<=NF; i++) if (gsub(/s/,"s",$i) == 2) print $i }' file.txt
如果要忽略大小写“s”字符(即匹配“s”或“s”),请尝试:
awk '{ for (i=1; i<=NF; i++) { s_count = gsub(/s/,"s",$i); S_count = gsub(/S/,"S",$i); if (s_count + S_count == 2) print $i } }' file.txt
结果:
Tests
pass