GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengekstrak Alamat Email dari File Teks di Linux

File teks berisi aliran karakter yang berkelanjutan tanpa format yang telah ditentukan sebelumnya. Sementara beberapa format file telah dikembangkan di atas file teks (Misalnya JSON , YAML ), yang mengharapkan data teks hadir dalam format tertentu, '.txt' normal normal file tidak memiliki konvensi seperti itu. Oleh karena itu, mengambil baris, atau frasa, atau string tertentu, dari file teks, harus dilakukan menggunakan alat Linux generik.

Perintah grep di Linux digunakan untuk menemukan substring atau pola teks, dalam string atau file. Ini mencetak baris di mana substring ditemukan.

Sintaks untuk menggunakan perintah grep adalah sebagai berikut:

$ grep <substring> <filename/standard input>

Misalnya, untuk mencari substring “Nama ” dalam file ‘test.txt ‘ (isinya ditampilkan di tangkapan layar), jalankan yang berikut ini.

$ grep "Name" test.txt

Hari ini, kita akan melihat cara mengekstrak Email alamat dari file teks menggunakan perintah grep .

Seperti yang kita ketahui, alamat Email hadir dalam format:

<user_id>@<domain>.<subdomain>

Di sini, user_id adalah string pengenal unik yang dipilih oleh pengguna, dan domain serta subdomain mewakili penyedia layanan Email (Misalnya gmail.com ).

Nama domain dan subdomain hanya boleh berisi abjad, sedangkan user_id dapat berisi abjad, karakter numerik serta karakter umum lainnya seperti titik (.) dan garis bawahi (_) .

Karena ini adalah pola pasti yang akan dicari, kita dapat menggunakan '-e' flag grep, yang memungkinkan kita untuk menentukan pola ekspresi reguler alih-alih substring, untuk ekstraksi dari file.

Jadi, sintaks grep dengan '-e' adalah:

$ grep -e <regular_expression> <filename/standard input>

Berdasarkan pola alamat Email yang dibahas sebelumnya, kita dapat membentuk ekspresi reguler berikut:

[a-zA-Z0-9._]\+@[a-zA-Z]\+.[a-zA-Z]\+

Di sini, 'a-zA-Z' mewakili alfabet apa pun, '0-9' mewakili angka, '._' mewakili periode atau garis bawah. Perhatikan bahwa karakter '\+' menyatakan bahwa set karakter dalam tanda kurung akan muncul satu kali atau lebih.

Kami akan menjalankan ekspresi reguler ini untuk mengekstrak alamat Email dari file ‘test2.txt ‘.

Pertama, lihat konten file test2.txt adalah:

$ cat test2.txt

Selanjutnya, jalankan perintah berikut untuk mengekstrak alamat Email dari file.

$ grep -e "[a-zA-Z0-9._]\+@[a-zA-Z]\+.[a-zA-Z]\+" test2.txt

Seperti yang bisa kita lihat, alamat Email berhasil diidentifikasi oleh Grep. Namun, mereka ditampilkan bersama dengan baris lengkap dalam file.

Untuk menampilkan ID Email yang ditemukan saja, gunakan '-o' tandai bersama dengan '-e' seperti yang ditunjukkan.

$ grep -oe "[a-zA-Z0-9._]\+@[a-zA-Z]\+.[a-zA-Z]\+" test2.txt
Kesimpulan

Dalam artikel ini, kita telah melihat cara mengekstrak alamat Email dari file teks di Linux, menggunakan alat baris perintah yang praktis Grep . Alamat email ini kemudian juga dapat ditulis ke file menggunakan pengalihan.

Jika Anda memiliki pertanyaan atau masukan, beri tahu kami di komentar di bawah.


Linux
  1. Cara Mengekstrak atau Mengunzip File tar.xz di Linux

  2. Bagaimana membedakan biner dari file teks di linux

  3. Bagaimana cara mengekstrak file .dmg di Linux?

  1. Cara Menambahkan Teks ke Akhir File di Linux

  2. Cara mengekstrak file .gz dan .tar.gz di Linux

  3. Bagaimana cara menampilkan baris tertentu dari file teks di Linux?

  1. Mencantumkan semua alamat email dalam file dengan grep

  2. Cara Mudah Menambahkan Teks ke Akhir File di Linux

  3. Bagaimana Cara Menghapus "Data biner" Dari File Teks (mis. Bash_history)?