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.