Soal 1Bagaimana sed 's/a/X/' f berperilaku pada setiap baris?
sed — Substitusi dan Ekstraksi
Praktikkan sed: 's/a/X/' mengganti kecocokan pertama per baris dan g mengganti semua, -n '2p' mencetak satu baris tertentu, '/two/d' menghapus baris yang cocok, dan -i mengedit file langsung — lengkap dengan diagram visual dan terminal browser.
Mengganti Teks — s/old/new/ dan g
sed adalah stream editor: ia membaca input satu baris pada satu waktu, mengubahnya sesuai aturan yang kamu berikan, lalu mengeluarkan hasilnya. Tugas yang paling umum adalah substitusi, ditulis sebagai sed 's/old/new/'. s berarti substitute, / memisahkan bagian-bagiannya, dan ini mengganti old dengan new. Bagian old juga bisa menggunakan ekspresi reguler yang sudah kamu pelajari sebelumnya (^ $ . *).
Tanpa g di akhir, s/old/new/ hanya mengganti kecocokan pertama yang ditemukan pada setiap baris. Menambahkan g di akhir seperti s/old/new/g mengganti setiap posisi yang cocok pada baris tersebut.
| Bentuk | Arti | Contoh |
|---|---|---|
s/old/new/ | Ganti hanya kecocokan pertama per baris | sed 's/a/X/' f |
s/old/new/g | Ganti semua kecocokan pada baris | sed 's/a/X/g' f |
g hanya kecocokan pertama pada baris yang berubah; dengan g semua kecocokan pada baris diganti.printf 'aaa\nbbb\n' > s.txt # buat file materi
sed 's/a/X/' s.txt # hanya a pertama -> Xaa
sed 's/a/X/g' s.txt # semua a -> XXX
Mengekstrak dan Menghapus Baris — -n 'Np' dan /pat/d
sed -n 'Np' mencetak hanya baris N. Kamu memasukkan nomor baris yang ingin ditampilkan di tempat N (untuk baris 2, 2p). Karena sed mencetak setiap baris secara default, -n mematikan output otomatis tersebut, dan p (print) secara eksplisit menyatakan baris yang ingin ditampilkan. Jadi sed -n '2p' menghasilkan hanya baris kedua.
sed '/pat/d' menghapus baris yang cocok dengan pat dan mengeluarkan sisanya. d adalah delete, dan bagian /pat/ adalah kondisi yang memilih baris yang akan dihapus. Gunakan ini ketika kamu ingin membuang hanya baris yang mengandung kata tertentu dan melihat sisanya.
| Bentuk | Arti | Contoh |
|---|---|---|
-n 'Np' | Cetak hanya baris N | sed -n '2p' f |
/pat/d | Hapus baris yang cocok dengan pat | sed '/two/d' f |
-n 'Np' hanya mengambil baris yang ditentukan, sementara /pat/d mengeluarkan semua kecuali baris yang cocok.printf 'one\ntwo\nthree\n' > lines.txt # buat file materi
sed -n '2p' lines.txt # hanya baris 2, two
sed '/two/d' lines.txt # one dan three, tanpa baris two
Mengedit File Langsung — sed -i
Sejauh ini sed hanya mencetak hasil ke layar, dan file asli tidak berubah. Menambahkan sed -i mengedit file secara langsung dengan hasilnya. Ini berguna untuk penggantian massal di file konfigurasi, tetapi karena konten asli tidak disimpan, setelah penulisan ulang sebaiknya gunakan cat untuk memeriksa isinya.
| Bentuk | Arti | Contoh |
|---|---|---|
-i | Edit file secara langsung | sed -i 's/a/Z/' f |
-i hanya mencetak ke layar; dengan -i file itu sendiri yang ditulis ulang.sed -i tidak bisa dibatalkan
sed -i menulis ulang file di tempat dan tidak menyimpan konten aslinya. Sebelum menggunakannya pada file konfigurasi sungguhan, cara aman adalah menjalankannya terlebih dahulu tanpa -i, periksa hasilnya di layar, konfirmasi bahwa hasilnya sesuai yang kamu inginkan, baru kemudian tambahkan -i.
printf 'apple\nbanana\n' > fruit.txt # buat file materi
sed -i 's/apple/cherry/' fruit.txt # edit file secara langsung
cat fruit.txt # cek cherry dan banana
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Apa yang ditampilkan saat menjalankan sed -n '2p' f?
Soal 3Apa yang dilakukan -i pada sed -i 's/a/Z/' f?