GNU/Linux >> Linux Esercitazione >  >> Linux

Trova parole ripetute in un testo

Con GNU grep:

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

Uscita:

twice twice
as as
here here
123 123

Opzioni :

-E :Interpreta (\b.+) \1\b come espressione regolare estesa.

-o :Stampa solo le parti corrispondenti (non vuote) di una riga corrispondente, con ognuna di queste parti su una riga di output separata.

Regex :

\b :è un limite di parola di larghezza zero.

.+ :Corrisponde a uno o più caratteri.

\1 :Le parentesi () contrassegna un gruppo di acquisizione e \1 significa utilizzare qui il valore del primo gruppo di acquisizione.

Riferimento:Domande frequenti sulle espressioni regolari di Stack Overflow


Sembra che qualcosa del genere sia quello che vuoi (usando qualsiasi awk in qualsiasi shell su ogni macchina 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

ma per favore poni una nuova domanda con esempi di input più realmente rappresentativi e risultati attesi inclusi punteggiatura, differenze nelle maiuscole, paragrafi multipli, parole duplicate all'inizio/alla fine delle frasi e vari altri casi non banali.


Linux
  1. Come utilizzare il comando Grep per trovare testo nei file

  2. Modificare una posta in arrivo da testo/normale a testo/html?

  3. Grep non riesce a trovare il testo in questo file?

  4. Come trovare testo specifico usando GREP su Linux

  5. Comandi di accesso ai file in Linux:trova, ordina, testa, coda

Come cercare per trovare una parola in Vim o Vi Text Editor

Grep Command in Linux (Trova testo nei file)

Come trovare e sostituire testo, parola o stringa in un file

Trova testo nei file su Linux usando grep

Come trovare e sostituire il testo in Vim

Editor di testo/log con supporto per l'aggiornamento automatico