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!

Unix / Linux - Regular Expressions

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