jian Asked: 2022-02-03 08:33:59 +0800 CST2022-02-03 08:33:59 +0800 CST 2022-02-03 08:33:59 +0800 CST usando ripgrep para encontrar a palavra adjacente 772 Como usar ripgrep para encontrar palavras duplicadas adjacentes. por exemplo one hello hello world Como localizar hello hellousando ripgrep? Resolvido rg '(hello)[[:blank:]]+\1' --pcre2 <<<'one hello hello world' grep ripgrep 2 respostas Voted Best Answer αғsнιη 2022-02-03T09:28:01+08:002022-02-03T09:28:01+08:00 Você também pode usar o GNU grep (para a extensão Back-reference ): grep -E '(hello)[[:blank:]]+\1' <<<'one hello hello world' para a portabilidade, você pode usar: grep '\(hello\)[[:blank:]][[:blank:]]*\1' adicione -wse você quiser corresponder nos limites das palavras; Do man grep : Referências inversas e subexpressões A referência inversa \n, onde n é um único dígito, corresponde à substring anteriormente correspondida pela n-ésima subexpressão entre parênteses da expressão regular. golder3 2022-02-03T09:19:17+08:002022-02-03T09:19:17+08:00 Aqui está a solução com awk: { for (i=1; i <= NF; i++) { if ($i == $(i+1)) { printf("%s %s\n", $i,$(i+1)); i++; } } } Isso só irá procurar por pares de 2 palavras iguais - por exemplo: palavra palavra palavra -> palavra palavra (um par) palavra palavra palavra palavra -> palavra palavra palavra palavra (dois pares) Se você quiser contar o número de palavras adjacentes iguais em cada linha: { 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); } } } Uso: awk -f awk_script your_file
Você também pode usar o GNU grep (para a extensão Back-reference ):
para a portabilidade, você pode usar:
adicione
-w
se você quiser corresponder nos limites das palavras;Do man grep :
Aqui está a solução com awk:
Isso só irá procurar por pares de 2 palavras iguais - por exemplo: palavra palavra palavra -> palavra palavra (um par) palavra palavra palavra palavra -> palavra palavra palavra palavra (dois pares)
Se você quiser contar o número de palavras adjacentes iguais em cada linha:
Uso: