GNU/Linux >> Tutoriales Linux >  >> Linux

Encuentra palabras repetidas en un texto

Con GNU grep:

echo 'Hi! Hi, same word twice twice, as as here here! ! ,123 123 need' |  grep -Eo '(\b.+) \1\b'

Salida:

twice twice
as as
here here
123 123

Opciones :

-E :Interpretar (\b.+) \1\b como una expresión regular extendida.

-o :Imprima solo las partes coincidentes (no vacías) de una línea coincidente, con cada una de esas partes en una línea de salida separada.

Expresión regular :

\b :es un límite de palabra de ancho cero.

.+ :Coincide con uno o más caracteres.

\1 :Los paréntesis () marcar un grupo de captura y \1 significa usar aquí el valor del primer grupo de captura.

Referencia:Preguntas frecuentes sobre las expresiones regulares de desbordamiento de pila


Parece que algo como esto es lo que quieres (usando cualquier awk en cualquier shell en cada cuadro de UNIX):

$ cat tst.awk
BEGIN { RS=""; ORS="\n\n" }
{
    head = prev = ""
    tail = $0
    while ( match(tail,/[[:alpha:]]+/) ) {
        word = substr(tail,RSTART,RLENGTH)
        head = head substr(tail,1,RSTART-1) (word == prev ? "" : word)
        tail = substr(tail,RSTART+RLENGTH)
        prev = word
    }
    print head tail
}

$ cat file
the quick quick brown
fox jumped jumped
jumped over the lazy
lazy dogs back

$ awk -f tst.awk file
the quick  brown
fox jumped
 over the lazy
 dogs back

pero haga una nueva pregunta con una entrada de muestra más verdaderamente representativa y se muestran resultados esperados que incluyen puntuación, diferencias en mayúsculas, párrafos múltiples, palabras duplicadas al principio/final de las oraciones y varios otros casos no triviales.


Linux
  1. ¿Encontrar las N palabras más frecuentes en un archivo?

  2. ¿Buscar archivos de texto donde existen dos palabras diferentes (cualquier orden, cualquier línea)?

  3. ¿Cómo encontrar corchetes no coincidentes en un archivo de texto?

  4. Grep no puede encontrar texto en este archivo?

  5. Editor Vi y Vim:12 potentes ejemplos de buscar y reemplazar

Cómo buscar para encontrar una palabra en Vim o Vi Text Editor

Comando Grep en Linux (Buscar texto en archivos)

Cómo buscar y reemplazar texto, palabra o cadena en un archivo

Encuentra texto en archivos en Linux usando grep

Cómo encontrar y reemplazar texto en Vim

Editor de texto / registro con soporte de actualización automática