如何使用 ripgrep 查找相邻的重复单词。例如
one hello hello world
如何hello hello
使用ripgrep进行定位?
解决了
rg '(hello)[[:blank:]]+\1' --pcre2 <<<'one hello hello world'
答案1
答案2
这是 awk 的解决方案:
{
for (i=1; i <= NF; i++) {
if ($i == $(i+1)) {
printf("%s %s\n", $i,$(i+1));
i++;
}
}
}
这只会搜索 2 个相同单词对 - 例如:单词单词单词 -> 单词单词(一对)单词单词单词单词 -> 单词单词单词单词(两对)
如果你想统计每行中相邻相同单词的数量:
{
for (i=1; i <= NF; i++) {
counter = 1;
while ($i == $(i+1)) {
counter++;
i++;
}
if (counter > 1) {
printf("%d %s %d\n", NR,$i,counter);
}
}
}
用法:
awk -f awk_script your_file