Unix / Linux - Regular Expressions with SED (ID)
Hai teman-teman, para ahli baris perintah masa depan! Hari ini, kita akan mendalami dunia magis ekspresi biasa (regex) dan perintah SED yang kuat di Unix/Linux. Siapkan sabuk pengaman Anda, karena kita akan embarkasi pada petualangan yang menarik yang akan mengubah cara Anda memanipulasi teks!
Memanggil sed
mari kita mulai dengan dasar. SED, singkatan dari "Stream Editor," adalah alat pemrosesan teks yang kuat. Untuk menggunakannya, kita hanya perlu mengetik "sed" diikuti perintah kita. Itu seperti memanggil jin pem-manipulasi teks!
sed 'perintah' namafile
Contoh:
sed 's/hello/bonjour/' greetings.txt
Perintah ini mengganti "hello" menjadi "bonjour" di file greetings.txt. Mudah, kan?
Sintaks Umum sed
Sintaks umum untuk sed mirip seperti mantra magis:
sed OPSI... [SKRIP] [BERKASMASUK...]
Jangan khawatir jika ini terlihat menakutkan. Kita akan membongkar nya bagian per bagian, seperti meng حل masalah yang menyenangkan!
Menghapus Semua Baris dengan sed
Ingin membuat semua teks di dalam file menghilang? Sed bisa melakukan itu! Berikut cara nya:
sed 'd' namafile
Ini menghapus semua baris di dalam file. Itu seperti menggunakan penghapus di buku digital Anda!
Alamat sed
Alamat di sed seperti koordinat GPS untuk teks Anda. Mereka mengatakan ke sed di mana untuk melakukan sihir nya. Berikut beberapa contoh:
sed '2d' file.txt # Menghapus baris ke-2
sed '/pattern/d' file.txt # Menghapus baris yang mengandung 'pattern'
Rentang Alamat sed
kadang-kadang, kita ingin menjalankan sihir kita di rentang baris. Berikut cara nya:
sed '2,5d' file.txt # Menghapus baris 2 hingga 5
sed '2,$d' file.txt # Menghapus dari baris 2 hingga akhir file
Perintah Substitusi
Perintah substitusi adalah roti dan mentega sed. Itu seperti "cari dan ganti" yang diperkuat!
sed 's/old/new/' file.txt
Ini mengganti pertama kali terjadi "old" menjadi "new" di setiap baris.
Flag Substitusi
Flag adalah seperti power-up untuk perintah substitusi Anda. Berikut tabel flag umum:
Flag | Deskripsi |
---|---|
g | Ganti semua terjadi, tidak hanya yang pertama |
i | Abaikan kasus |
p | Cetak baris yang diubah |
w | Tulis hasil ke file |
Contoh:
sed 's/cat/dog/g' pets.txt
Ini mengganti semua terjadi "cat" menjadi "dog".
Menggunakan Separator String Alternatif
Kadang-kadang, teks Anda mengandung banyak garis miring. Tak perlu khawatir! Kita bisa menggunakan separator berbeda:
sed 's#/usr/local/bin#/common/bin#' paths.txt
Di sini, kita menggunakan '#' sebagai separator kita, bukan '/'.
Menghapus dengan Ruang Kosong
Ingin membuat teks menghilang tanpa jejak? Berikut cara nya:
sed 's/unwanted//g' file.txt
Ini menghapus semua terjadi "unwanted" dari file.
Substitusi Alamat
Kita dapat menggabungkan alamat dengan substitusi untuk operasi teks yang presisi:
sed '3,6s/foo/bar/g' file.txt
Ini mengganti semua "foo" menjadi "bar", tapi hanya di baris 3 hingga 6.
Perintah Pencocokan
Perintah pencocokan adalah seperti lampu sorot, mendengkil baris yang kita minati:
sed -n '/pattern/p' file.txt
Ini hanya mencetak baris yang mengandung "pattern".
Menggunakan Ekspresi Reguler
Sekarang kita mencapai magis yang sebenarnya! Ekspresi reguler adalah seperti wildcard yang diperkuat. Berikut contoh sederhana:
sed -n '/^The/p' story.txt
Ini mencetak semua baris yang dimulai dengan "The".
Pencocokan Karakter
Ekspresi reguler memiliki karakter khusus yang bertindak seperti shapeshifter:
Karakter | Arti |
---|---|
. | Setiap karakter tunggal |
* | Nol atau lebih karakter sebelumnya |
^ | Awal baris |
$ | Akhir baris |
Contoh:
sed -n '/c.t/p' animals.txt
Ini mencocokkan "cat", "cot", "cut", dll.
Kata Kunci Kelas Karakter
Kelas karakter adalah seperti tim karakter. Berikut beberapa MVP:
Kelas | Cocok Dengan |
---|---|
[:alpha:] | Karakter abjad |
[:digit:] | Karakter numerik |
[:alnum:] | Karakter alphanumeric |
Contoh:
sed -n '/[[:digit:]]/p' data.txt
Ini mencetak baris yang mengandung angka.
Referensi Ampersand
Ampersand (&) adalah seperti cermin magis, merefleksikan apa yang dicocokkan:
sed 's/[0-9]/(&)/' numbers.txt
Ini menempatkan kurung di sekitar setiap angka.
Menggunakan Beberapa Perintah sed
Ingin menjalankan beberapa sihir sekaligus? Gunakan opsi -e:
sed -e 's/foo/bar/g' -e 's/baz/qux/g' file.txt
Ini melakukan dua substitusi dalam satu langkah!
Referensi Kembali
Referensi kembali adalah seperti mesin waktu, memungkinkan kita mengulangi bagian dari cocokan:
sed 's/\(.*\):\([^:]*\)/\2:\1/' names.txt
Ini menukar teks sebelum dan setelah titik dua.
Dan itu dia, teman-teman saya! Kita telah berpetualang melalui negeri sed dan ekspresi biasa. Ingat, latihan membuat sempurna. Jadi, pergi dan manipulasikan teks seperti sihir para ahli baris perintah yang Anda menjadi! Selamat coding!
Credits: Image by storyset