Panduan Lengkap Perintah sed Linux

Ikhtisar

Memperkenalkan perintah sed, sebuah stream editor yang andal untuk mengganti dan mengedit konten file teks secara cepat dan akurat di lingkungan Linux. Pelajari dengan mudah melalui contoh praktis dunia kerja, mulai dari substitusi string dasar, penghapusan baris tertentu, hingga opsi inline (-i) untuk memodifikasi file secara langsung sekaligus membuat cadangan (backup).

1. Menyiapkan Lingkungan Praktik dan Substitusi String Dasar sed (Perintah s)

Jalankan perintah mkdir -p ~/sed_practice && cd ~/sed_practice untuk membuat direktori khusus guna menjalankan latihan perintah sed secara aman dan berpindah ke lokasi tersebut.

mkdir -p ~/sed_practice && cd ~/sed_practice

Jalankan perintah echo -e 'apple is delicious\nbanana is yellow\napple is red' > fruits.txt untuk menulis konten ke dalam file guna menyusun contoh teks yang akan digunakan dalam latihan substitusi string.

echo -e ‘apple is delicious\nbanana is yellow\napple is red’ > fruits.txt

Perintah sed adalah sebuah stream editor yang memproses dan mengedit aliran teks (text stream).
Gunakan operator substitusi s untuk mengganti string apple pertama yang ditemukan pada setiap baris menjadi orange dan menampilkannya di layar.
Konten file asli fruits.txt tidak berubah, dan hanya hasilnya yang ditampilkan pada output standar (standard output).
⚙️ [Opsi Utama]

-i : Mengubah dan menyimpan file asli secara langsung alih-alih menampilkan hasilnya di layar.
-e : Menghubungkan dan mengeksekusi beberapa perintah skrip pengeditan sekaligus.
-n : Menekan output otomatis dari pattern space dan hanya menampilkan baris yang ditentukan secara eksplisit.
-E atau -r : Mengaktifkan dan menggunakan sintaks regular expression yang diperluas (ERE).

sed ’s/apple/orange/’ fruits.txt

Menambahkan flag g di akhir ekspresi substitusi akan mengganti semua kecocokan dalam satu baris secara global.
Gunakan ini ketika terdapat beberapa kata pencarian yang sama pada setiap baris dan Anda ingin mengubah semuanya tanpa ada yang terlewat.

sed ’s/apple/orange/g’ fruits.txt

2. Memilih Output Baris Tertentu dan Menghapus Baris (Opsi d dan -n)

Jalankan perintah echo -e 'Line 1: Server OK\nLine 2: Server Warning\nLine 3: Server Error\nLine 4: Server OK' > server.log untuk membuat file contoh guna menyiapkan data log yang diperlukan dalam latihan pemilihan dan penghapusan baris.

echo -e ‘Line 1: Server OK\nLine 2: Server Warning\nLine 3: Server Error\nLine 4: Server OK’ > server.log

Gabungkan opsi -n dan perintah p untuk menampilkan hanya baris ke-2 hingga ke-3 ke layar sesuai rentang yang ditentukan.
Sangat berguna untuk menekan output otomatis default dan memeriksa hanya baris tertentu yang diinginkan secara selektif.

sed -n ‘2,3p’ server.log

Gunakan perintah d dan pencocokan pola (pattern matching) untuk mengecualikan baris yang mengandung string Warning dan hanya menampilkan konten lainnya di layar.
Gunakan ini saat memfilter log yang tidak perlu atau baris dengan kondisi tertentu untuk diperiksa.

sed ‘/Warning/d’ server.log

Tentukan nomor baris tertentu dan jalankan perintah d untuk menampilkan hasil penghapusan baris ke-2 di layar.
Manfaatkan ini saat ingin menghapus baris pada nomor baris tertentu dan memeriksa konten file.

sed ‘2d’ server.log

3. Modifikasi File Asli Secara Langsung dan Pencadangan Otomatis (Opsi -i)

Buat file config.env yang berisi contoh data variabel lingkungan untuk latihan modifikasi file konfigurasi.

echo -e ‘PORT=8080\nDEBUG=true\nTIMEOUT=30’ > config.env

Gunakan opsi -i.bak untuk membuat file cadangan config.env.bak dari file asli, sekaligus segera mengganti pengaturan DEBUG=true menjadi DEBUG=false dan menyimpannya langsung ke file asli.
Manfaatkan ini untuk memodifikasi file asli secara langsung sambil menjaga status sebelum perubahan tetap aman.

sed -i.bak ’s/DEBUG=true/DEBUG=false/’ config.env

Periksa konten file config.env yang telah dimodifikasi menggunakan perintah cat.
Anda dapat memastikan bahwa nilai DEBUG telah berhasil diubah menjadi false dan diterapkan pada file.

cat config.env

Tampilkan dan periksa konten file cadangan config.env.bak yang dibuat secara otomatis.
Dapat dipastikan bahwa konten asli sebelum modifikasi dengan status DEBUG=true tetap dipertahankan dan dicadangkan dengan aman.

cat config.env.bak

4. Substitusi Teks Lanjutan Menggunakan Regular Expression dan Perubahan Delimiter

Tulis konten ke dalam file paths.txt menggunakan perintah echo untuk membuat contoh data path file yang akan digunakan dalam latihan substitusi path.

echo -e ‘Old path: /usr/local/bin\nNew path: /usr/local/bin’ > paths.txt

Gunakan simbol pipe (|) sebagai delimiter substitusi alih-alih garis miring (/) yang merupakan delimiter default, untuk mengganti /usr/local/bin dalam path menjadi /usr/bin secara aman dan menampilkannya.
Saat menangani path file atau URL yang memuat garis miring, Anda dapat menulis ekspresi dengan rapi tanpa perlu karakter escape (\).

sed ’s|/usr/local/bin|/usr/bin|g’ paths.txt

Buat file contoh spaces.txt yang memuat spasi di awal dan akhir untuk melakukan latihan penghapusan spasi menggunakan regular expression.

echo -e ’   leading spaces\nno spaces\n   trailing removed   ’ > spaces.txt

Cocokkan simbol ^ yang menandakan awal baris dengan regular expression [ \t]* yang menentukan karakter spasi dan tab untuk menghapus semua spasi di awal setiap baris dan menampilkannya.
Dapat dimanfaatkan secara praktis ketika ingin merapikan spasi indentasi pada dokumen atau data log secara massal.

sed ’s/^[ \t]*//’ spaces.txt

Sejauh ini, kita telah merangkum penggunaan inti dari perintah sed Linux, mulai dari substitusi teks dasar hingga cara memodifikasi file dalam jumlah besar sekaligus.
Karena ini adalah alat canggih yang dapat memangkas pekerjaan pengeditan file berulang secara drastis, silakan manfaatkan dengan mudah kapan pun dibutuhkan.