GNU/Linux >> Belajar Linux >  >> Linux

Temukan kata-kata berulang dalam teks

Dengan grep GNU:

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

Keluaran:

twice twice
as as
here here
123 123

Opsi :

-E :Menafsirkan (\b.+) \1\b sebagai ekspresi reguler yang diperluas.

-o :Cetak hanya bagian yang cocok (tidak kosong) dari garis yang cocok, dengan masing-masing bagian tersebut pada garis keluaran yang terpisah.

Regex :

\b :Adalah batas kata dengan lebar nol.

.+ :Mencocokkan satu atau beberapa karakter.

\1 :Tanda kurung () tandai grup penangkap dan \1 berarti gunakan di sini nilai dari grup penangkap pertama.

Referensi:FAQ Ekspresi Reguler Stack Overflow


Kedengarannya seperti inilah yang Anda inginkan (menggunakan awk apa pun di shell apa pun di setiap kotak 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

tetapi harap ajukan pertanyaan baru dengan masukan sampel yang lebih representatif dan keluaran yang diharapkan termasuk tanda baca, perbedaan kapitalisasi, banyak paragraf, kata duplikat di awal/akhir kalimat, dan berbagai kasus non-sepele lainnya ditampilkan.


Linux
  1. Cara Menggunakan Perintah Grep untuk Menemukan Teks di File

  2. Menggunakan sed untuk menemukan dan mengganti file teks di Linux

  3. Temukan N Kata Paling Sering Dalam Sebuah File?

  1. Ubah Surat Masuk Dari Teks/biasa Menjadi Teks/html?

  2. Bagaimana Menemukan Tanda Kurung yang Tak Tertandingi Dalam File Teks?

  3. Grep Gagal Menemukan Teks Di File Ini?

  1. Cara Menemukan Teks Tertentu menggunakan GREP di Linux

  2. Editor Vi dan Vim:12 Contoh Temukan dan Ganti yang Kuat

  3. Perintah Akses File di Linux – temukan, urutkan, kepala, ekor