Ekspresi Reguler Sed di Linux
Editor Aliran
Perintah sed
digunakan untuk pengeditan aliran.
Contoh:
bashSalin kodeecho interactive | sed 's/inte/dist/'
echo interactive | sed 's:inte:dist:'
echo interactive | sed 's_inte_dist_'
echo interactive | sed 's|inte|dist|'
Lihat snapshot di atas, string ‘interactive’ diubah menjadi ‘distractive’ dengan perintah sed
. Selain garis miring (“/”), titik dua (“:”), garis bawah (“_”), dan pipa (“|”) juga akan bekerja.
Editor Interaktif
Perintah sed
dimaksudkan sebagai editor aliran, namun juga dapat digunakan sebagai editor interaktif pada file. Untuk editor interaktif, opsi ‘i’ digunakan.
Contoh:
arduinoSalin kodesed -i 's/today/tomorrow/' file
Lihat snapshot di atas, string ‘today’ diubah menjadi ‘tomorrow’ dalam ‘file’.
Referensi Balik Sederhana
Double ampersand digunakan untuk mencari dan menemukan string yang ditentukan. Ini akan mencetak string yang ditemukan dengan perintah sed
.
Contoh:
bashSalin kodeecho fourty | sed 's/four/&&/'
Lihat snapshot di atas, ampersand mencari string ‘four’ dan mencetaknya sebagai ‘fourfourty’.
Titik untuk Karakter Apa Saja
Dalam regex, titik sederhana dapat menandakan karakter apa saja.
Contoh:
bashSalin kodeecho xxxx-xx-xx | sed 's/....-..-../YYYY-MM-DD/'
Lihat snapshot di atas, titik-titik diganti dengan format tanggal.
Referensi Balik Ganda
Ketika lebih dari satu pasangan tanda kurung digunakan, ini disebut pengelompokan. Di sini masing-masing dapat direferensikan secara terpisah sebagai tiga angka berturut-turut.
Contoh:
bashSalin kodeecho 2014-06-30 | sed 's/\(....\)-\(..\)-\(..\)/\1:\2:\3/'
echo 2014-06-30 | sed 's/\(....\)-\(..\)-\(..\)/\1_\2_\3/'
echo 2014-06-30 | sed 's/\(....\)-\(..\)-\(..\)/\2:\3:\1/'
echo 2014-06-30 | sed 's/\(....\)-\(..\)-\(..\)/\3:\2:\1/'
Lihat snapshot di atas, tanggal dicetak dalam format yang berbeda. Di sini, 2014 direferensikan sebagai (1), 06 direferensikan sebagai (2) dan 30 direferensikan sebagai (3).
Spasi
Sintaks spasi adalah ‘\s’ dan sintaks spasi tab adalah ‘\t’.
Contoh:
bashSalin kodeecho -e 'this\tis\tjavatpoint' | sed 's/\s/ /g'
Lihat snapshot di atas, ‘\s’ digunakan untuk satu spasi.
Kemunculan Opsional
Anda dapat menentukan sesuatu yang opsional dengan menentukannya dengan tanda tanya (?).
Contoh:
bashSalin kodecat list2 | sed 's/iii\?/Y/'
Lihat snapshot di atas, kita telah membuat ‘i’ ketiga menjadi opsional. Ini berarti dua ‘i’ harus diubah menjadi ‘Y’.
Kemunculan Sebanyak n Kali
Kemunculan sejumlah kali tertentu ditentukan oleh “{times}”.
Contoh:
bashSalin kodecat list2 | sed 's/i\{3\}/Y/'
Lihat snapshot di atas, kita telah menentukan kemunculan ‘i’ sebanyak tiga kali tepatnya.
Kemunculan dalam Rentang
Kita juga dapat menentukan kemunculan dalam istilah rentang. Misalnya, jika kita menentukan rentang sebagai {m,n}, maka ‘m’ menunjukkan kemunculan minimal dan ‘n’ menunjukkan kemunculan maksimal.
Contoh:
bashSalin kodecat list2 | sed 's/i\{3,4\}/Y/'
Lihat snapshot di atas, kita telah menentukan rentang minimal 3 dan rentang maksimal 4.
ref: [1]