Alat seperti sed
(editor aliran) dan grep
(cetakan ekspresi reguler global) adalah cara ampuh untuk menghemat waktu dan membuat pekerjaan Anda lebih cepat. Sebelum menyelam jauh ke dalam kasus penggunaan, saya ingin menjelaskan secara singkat ekspresi reguler (regex), yang diperlukan untuk manipulasi teks yang akan kita lakukan nanti.
Apa itu ekspresi reguler? Saat kami menangani file log, file teks, atau sepotong kode, kami
perlu dipahami bahwa semua ini terdiri dari karakter. Ketika panjang file besar, menjadi suatu keharusan untuk menyaring pola-pola tertentu untuk membuat debugging Anda lebih mudah. Anda akan menemukan contoh ekspresi reguler di seluruh kasus penggunaan ini.
Grup 1:Data server
Katakanlah Anda memiliki file yang memiliki kemunculan string:
Sekarang, bagaimana Anda memfilter site1
's (file di atas adalah contoh sederhana), sehingga Anda hanya dapat mengambil info yang diperlukan dan memanipulasi entri?
Jelas, kita dapat melihat ada pola umum ("Penyebaran Cloud") di seluruh file. Jadi, sekarang kita bisa menggunakan teknik filtering untuk mengambil info dari file menggunakan grep
. Saya ingat ini sebagai "dapatkan regex n print."
Use case 1
Jika saya ingin server dari wilayah yang berbeda, saya dapat menggunakan grep
sebagai berikut:
Kasus penggunaan 2
Sekarang, katakan bahwa Anda tahu ingin menyaring server berdasarkan IP. Anda dapat melakukan hal yang sama menggunakan:
Kasus penggunaan 3
Sekarang, lihat grep
pertama gambar perintah. Meskipun Anda mengetahui jangkauan subnet sistem Anda, perintah tersebut mencetak kemunculan 10.1 di seluruh file.
Bagaimana Anda bisa memecahkan kasus penggunaan jenis ini? Kami dapat menangani masalah ini menggunakan pemfilteran lanjutan berbasis regex, seperti ini:
Contoh ini hanyalah kemungkinan penggunaan grep
. Sekali lagi, karena ini adalah file yang relatif kecil, Anda bisa mendapatkan apa yang Anda inginkan menggunakan apa yang ditunjukkan di atas. -v
switch membalikkan kriteria pencarian, artinya grep
mencari file sed-grep.txt
dan mencetak semua detail, tidak termasuk <search-pattern>
(10.1. dalam hal ini).
Use case 4
Katakanlah Anda ingin mengganti alamat IP dan memindahkan semua server di wilayah tersebut ke subnet yang berbeda. Anda dapat menggunakan sed
untuk kasus penggunaan ini.
Dari halaman manual, sed
menggunakan format:
sed [options] commands [file-to-edit]
Perintah kami untuk kasus penggunaan ini mungkin terlihat seperti ini:
Perintah ini dipecah sebagai berikut:
s
singkatan dari pengganti.%
adalah pembatas (kita bisa menggunakan karakter apa saja di sini).<search pattern>
muncul setelah%
first pertama .<replace pattern>
muncul setelah%
second kedua .g
singkatan dari global replace (artinya seluruh file).
Atau:
s%<search-pattern>%<replace-pattern>%g
Kasus penggunaan 5
Anda bahkan dapat mengubah wilayah server dalam file:
Kasus penggunaan 6
Kasus penggunaan ini lebih maju. Kami hanya akan menghapus komentar (#
) dari file menggunakan sed
:
Perintah ini mengatakan bahwa jika #
muncul sebagai karakter pertama baris, untuk mengganti baris tersebut dengan spasi kosong. Akibatnya, perintah ini melakukan tugas menghapus komentar dari file.
Grup 2:/etc/passwd
Mari kita lihat beberapa kasus penggunaan lagi, kali ini melibatkan /etc/passwd
.
Use case 1
Asumsikan Anda ingin mengambil pengguna dari file /etc/passwd
mengajukan. Anda dapat menggunakan sed
sebagai berikut:
Kasus penggunaan 2
Bagaimana jika Anda hanya ingin mengambil 10 pengguna pertama dari /etc/passwd
? Anda dapat menggunakan sed
dan awk
untuk tujuan ini (tolong bersama saya di sini):
Perintah ini dipecah menjadi:
sed -n
artinya jangan cetak semuanya.p
mencetak baris satu sampai 10.awk
di sini menggunakan:
sebagai pemisah bidang dan mencetak kolom pertama.
Use case 3
Hapus rentang baris tertentu dalam file teks menggunakan sed
:
Kasus penggunaan SELinux
Berikut adalah contoh sed
perintah untuk memanipulasi SELinux:
Kesimpulan
Ini adalah upaya saya untuk memberi Anda pembaca sekilas tentang kemungkinan menggunakan sed
dan grep
. Anda dapat melakukan banyak manipulasi teks menggunakan perintah ini. Lihat opsi yang berbeda menggunakan halaman manual untuk mempelajari lebih lanjut.
[Ingin mencoba Red Hat Enterprise Linux? Unduh sekarang secara gratis.]