sed - Stream Editor

Menggunakan Perintah sed

Perintah sed adalah editor aliran yang digunakan untuk melakukan transformasi teks dasar pada aliran input (berkas atau input dari pipeline).

Ini adalah alat yang ampuh untuk melakukan pengeditan cepat pada berkas atau aliran data.

Semua contoh di bawah ini menggunakan berkas example_text.txt:

Hello World
Line 1
Line 2

Penggunaan Dasar

Untuk mengganti kemunculan pertama suatu pola dalam suatu berkas, gunakan sed 's/lama/baru/' namaberkas:

$ sed 's/World/Bash/' example_text.txt
Hello Bash
Line 1
Line 2

Opsi

Perintah sed memiliki opsi untuk mengubah cara kerjanya:

  • -i - Edit files directly without needing to save separately

  • -e - Add the script to the commands to be executed

  • -n - Don't automatically print lines

  • -r - Use extended regular expressions

  • -f - Add script from a file

  • -l - Specify line length for l command

Edit Files In Place

Opsi -i memungkinkan Anda mengedit berkas secara langsung tanpa perlu menyimpannya secara terpisah.

Tanpa opsi ini, sed akan menampilkan hasilnya ke keluaran standar, dan Anda harus mengarahkannya ke berkas untuk menyimpan perubahan.

$ sed -i 's/World/Bash/g' example_text.txt
$ cat example_text.txt
Hello Bash
Line 1
Line 2

Suppress Printing

Opsi -n menghentikan pencetakan otomatis ruang pola.

Secara default, sed mencetak setiap baris input ke output. Menggunakan -n memungkinkan Anda mengontrol baris mana yang dicetak, biasanya dengan perintah p.

$ sed -n 's/World/Bash/p' example_text.txt
Hello Bash

Extended Regular Expressions

Opsi -r memungkinkan penggunaan ekspresi reguler yang diperluas, yang menyediakan kemampuan pencocokan pola yang lebih canggih daripada ekspresi reguler dasar.

Tanpa opsi ini, sed menggunakan ekspresi reguler dasar.

$ sed -r 's/(World|Line)/Hello/g' example_text.txt
Hello Hello
Hello 1
Hello 2

Script from a File

Opsi -f memungkinkan Anda menambahkan skrip dari sebuah berkas, yang berguna untuk menjalankan perintah sed yang kompleks atau beberapa perintah.

Tanpa opsi ini, Anda harus menentukan skrip langsung di baris perintah.

Isi berkas script.sed:

s/World/Bash/g
$ sed -f script.sed example_text.txt
Hello Bash
Line 1
Line 2

Specify Line Length

The -l option specifies the line length for the l command, which prints lines with non-printable characters.

This option is useful for formatting output when dealing with long lines.

$ sed -l 10 'l' example_text.txt
Hello Wor\
ld$
Hello World
Line 1$
Line 1
Line 2$
Line 2

Pilihan ini menambahkan $ di akhir setiap baris untuk menunjukkan akhir baris.

Redirect Output to a File

Untuk menyimpan perubahan yang dibuat oleh sed pada suatu berkas, Anda dapat mengalihkan output ke berkas baru. Ini berguna jika Anda tidak ingin menimpa berkas asli.

$ sed 's/World/Bash/' example_text.txt > new_example_text.txt
$ cat new_example_text.txt
Hello Bash
Line 1
Line 2

Using sed for Advanced Text Processing

Sed dapat melakukan tugas pemrosesan teks tingkat lanjut. Misalnya, sed 's/^/Prefix: /' example_text.txt menambahkan awalan ke setiap baris.

$ sed 's/^/Prefix: /' example_text.txt
Prefix: Hello World
Prefix: Line 1
Prefix: Line 2

Kesalahan Umum dan Pemecahan Masalah

Saat menggunakan sed, Anda mungkin mengalami kesalahan seperti:

  • "sed: command garbled" - Check your command syntax.

  • "sed: can't read file" - Ensure the file path is correct and accessible.

Tips debugging meliputi penggunaan echo untuk mencetak hasil sementara dan memverifikasi logika perintah.