Perintah Sed atau Editor Aliran adalah utilitas yang sangat kuat yang ditawarkan oleh sistem Linux/Unix. Ini terutama digunakan untuk substitusi teks , temukan &ganti tetapi juga dapat melakukan manipulasi teks lain seperti penyisipan , penghapusan , telusuri dll. Dengan SED, kita dapat mengedit file lengkap tanpa harus membukanya. Sed juga mendukung penggunaan ekspresi reguler, yang membuat sed menjadi alat manipulasi pengujian yang lebih kuat lagi. .
Pada artikel ini, kita akan belajar menggunakan perintah SED dengan bantuan beberapa contoh. Sintaks dasar untuk menggunakan perintah sed adalah,
sed OPSI… [SCRIPT] [INPUTFILE…]
Sekarang mari kita lihat beberapa contohnya.
Contoh :1) Menampilkan sebagian teks dari sebuah file
Dengan sed, kita hanya dapat melihat sebagian file daripada melihat seluruh file. Untuk melihat beberapa baris file, gunakan perintah berikut,
[[email protected] ~]$ sed -n 22,29p testfile.txt
di sini, opsi 'n' menekan pencetakan seluruh file &opsi 'p' hanya akan mencetak baris baris dari 22 hingga 29.
Contoh :2) Tampilkan semua kecuali beberapa baris
Untuk menampilkan semua isi file kecuali sebagian, gunakan perintah berikut,
[[email protected] ~]$ sed 22,29d testfile.txt
Opsi 'd' akan menghapus baris yang disebutkan dari output.
Contoh :3) Tampilkan setiap baris ke-3 dimulai dengan baris ke-N
Tampilkan konten setiap baris ke-3 dimulai dengan baris nomor 2 atau baris lainnya, gunakan perintah berikut
[[email protected] ~]$ sed -n '2~3p' file.txt
Contoh :4 ) Menghapus baris menggunakan perintah sed
Untuk menghapus baris dengan sed dari file, gunakan perintah berikut,
[[email protected] ~]$ sed Nd testfile.txt
di mana 'N' adalah nomor baris &opsi 'd' akan menghapus nomor baris yang disebutkan. Untuk menghapus baris terakhir file, gunakan
[[email protected] ~]$ sed $d testfile.txt
Contoh :5) Menghapus rentang baris
Untuk menghapus rentang baris dari file, jalankan
[[email protected] ~]$ sed '29,34d' testfile.txt
Ini akan menghapus baris 29 hingga 34 dari file testfile.txt.
Contoh :6) Menghapus baris selain yang disebutkan
Untuk menghapus baris selain baris yang disebutkan dari file, kita akan menggunakan '!'
[[email protected] ~]$ sed '29,34!d' testfile.txt
di sini opsi '!' digunakan sebagai tidak, sehingga akan membalikkan kondisi yaitu tidak akan menghapus baris yang disebutkan. Semua baris 29-34 lainnya akan dihapus dari file testfile.txt.
Contoh :7) Menambahkan baris/spasi Kosong
Untuk menambahkan baris kosong setelah setiap baris yang tidak kosong, kita akan menggunakan opsi 'G',
[[email protected] ~]$ sed G testfile.txt
Contoh :8) Mencari dan Mengganti string menggunakan sed
Untuk mencari &mengganti string dari file, kita akan menggunakan contoh berikut,
[[email protected] ~]$ sed 's/danger/safety/' testfile.txt
di sini opsi 's' akan mencari kata 'bahaya' &menggantinya dengan 'keamanan' di setiap baris untuk kemunculan pertama saja.
Contoh :9) Cari dan ganti string dari seluruh file menggunakan sed
Untuk mengganti kata sepenuhnya dari file, kami akan menggunakan opsi 'g' dengan 's',
[[email protected] ~]$ sed 's/danger/safety/g' testfile.txt
Contoh :10) Ganti kemunculan ke-n dari pola string
Kami juga dapat mengganti string pada kemunculan ke-n dari sebuah file. Seperti mengganti 'bahaya' dengan 'keamanan' hanya pada kemunculan kedua,
[[email protected] ~]$ sed ‘s/danger/safety/2’ testfile.txt
Untuk mengganti 'bahaya' pada kemunculan ke-2 setiap baris dari seluruh file, gunakan
[[email protected] ~]$ sed 's/danger/safety/2g' testfile.txt
Contoh :11) Mengganti string pada baris tertentu
Untuk mengganti string hanya dari baris tertentu, gunakan
[[email protected] ~]$ sed '4 s/danger/safety/' testfile.txt
Ini hanya akan menggantikan string dari baris ke-4 file. Kami juga dapat menyebutkan rentang baris alih-alih satu baris,
[[email protected] ~]$ sed '4,9 s/danger/safety/' testfile.txt
Contoh :12) Tambahkan baris setelah/sebelum pencarian yang cocok
Untuk menambahkan baris baru dengan beberapa konten setelah setiap pencocokan pola, gunakan opsi 'a' ,
[[email protected] ~]$ sed '/danger/a "This is new line with text after match"' testfile.txt
Untuk menambahkan baris baru dengan beberapa konten a sebelum setiap pola cocok, gunakan opsi 'i',
[[email protected] ~]$ sed '/danger/i "This is new line with text before match" ' testfile.txt
Contoh :13) Ubah seluruh baris dengan pola yang cocok
Untuk mengubah seluruh baris ke baris baru saat pola pencarian cocok, kita perlu menggunakan opsi 'c' dengan sed,
[[email protected] ~]$ sed '/danger/c "This will be the new line" ' testfile.txt
Jadi ketika polanya cocok dengan 'bahaya', seluruh baris akan diubah ke baris yang disebutkan.
Opsi lanjutan dengan sed
Selama ini kita hanya menggunakan ekspresi sederhana dengan sed, sekarang kita akan membahas beberapa penggunaan lanjutan dari sed dengan regex,
Contoh :14) Menjalankan beberapa perintah sed
Jika kita perlu melakukan beberapa ekspresi sed, kita dapat menggunakan opsi 'e' untuk menyambungkan perintah sed,
[[email protected] ~]$ sed -e 's/danger/safety/g' -e 's/hate/love/' testfile.txt
Contoh :15) Membuat salinan cadangan sebelum mengedit file
Untuk membuat salinan cadangan file sebelum kita mengeditnya, gunakan opsi ‘-i.bak’,
[[email protected] ~]$ sed -i.bak -e 's/danger/safety/g' testfile.txt
Ini akan membuat salinan cadangan file dengan ekstensi .bak. Anda juga dapat menggunakan ekstensi lain jika Anda mau.
Contoh :16) Hapus baris file yang dimulai dengan &diakhiri dengan pola
Untuk menghapus baris yang dimulai dengan string tertentu &diakhiri dengan string lain, gunakan
[[email protected] ~]$ sed -e 's/^danger.*stops$//g' testfile.txt
Ini akan menghapus baris dengan 'bahaya' di awal &'berhenti' di akhir &dapat memiliki sejumlah kata di antara , '.*' mendefinisikan bagian itu.
Contoh :17) Menambahkan baris
Untuk menambahkan beberapa konten sebelum setiap baris dengan sed ®ex, gunakan
[[email protected] ~]$ sed -e 's/.*/testing sed &/' testfile.txt
Jadi sekarang setiap baris akan memiliki 'testing sed' sebelumnya.
Contoh :18) Menghapus semua baris komentar &baris kosong
Untuk menghapus semua baris yang dikomentari, yaitu baris dengan # &semua baris kosong, gunakan
[[email protected] ~]$ sed -e 's/#.*//;/^$/d' testfile.txt
Untuk hanya menghapus baris yang dikomentari, gunakan
[[email protected] ~]$ sed -e 's/#.*//' testfile.txt
Contoh :19) Dapatkan daftar semua nama pengguna dari /etc/passwd
Untuk mendapatkan daftar semua nama pengguna dari file /etc/passwd, gunakan
[[email protected] ~]$ sed 's/\([^:]*\).*/\1/' /etc/passwd
daftar lengkap semua nama pengguna akan ditampilkan di layar sebagai output.
Contoh :20) Mencegah penimpaan tautan sistem dengan perintah sed
Perintah 'sed -i' telah dikenal untuk menghapus tautan sistem &hanya membuat file biasa sebagai pengganti file tautan. Jadi untuk menghindari situasi seperti ini &mencegah ‘sed -i ‘ dari menghancurkan tautan, gunakan ‘–ikuti-symklinks ' opsi dengan perintah yang dieksekusi.
Anggap saya ingin menonaktifkan SELinux di CentOS atau RHEL Severs
[[email protected] ~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
Ini adalah beberapa contoh untuk menunjukkan sed, kita dapat menggunakan referensi ini untuk menggunakannya sebagai &bila diperlukan. Jika kalian memiliki pertanyaan yang terkait dengan ini atau artikel apa pun, bagikan dengan kami.
Baca Juga : 14 Contoh Perintah SCP untuk Mentransfer File dengan Aman di Linux