Cara Menggunakan Sed di Linux untuk Tugas Shell Dasar

Sed adalah program UNIX sederhana. Itu tidak membuat dan mengedit file. Itu hanya memodifikasi data yang melewati inputnya dan menyajikan data yang dimodifikasi pada outputnya. Meskipun begitu, sed dianggap sebagai salah satu utilitas UNIX paling kuat yang akan Anda temui di Linux, terutama jika digabungkan dengan program lain di sistem Anda.

Artikel ini bertujuan untuk mengajarkan dasar-dasar cara menggunakan program kecil ini. Selanjutnya, ini juga akan memberikan gambaran singkat tentang GB

Filosofi UNIX memungkinkan Anda untuk menggunakan program GB

Di sisi lain, Anda malah bisa memberi makan aliran kucing yang sama ke GB

Bagaimana Sed Bekerja?

Dengan demikian, sed adalah program yang membaca aliran teks dan memodifikasinya. Namun, sed hanya memodifikasi aliran teks, yang berarti tidak secara langsung mengubah file di komputer Anda. Ini bisa membingungkan bagi pemula karena setiap perubahan yang Anda buat di sed tidak akan muncul di disk.

Meskipun demikian, sed masih merupakan utilitas yang kuat. Misalnya, Anda dapat menjalankan baris berikut untuk membaca output dari perintah printf :

printf “halo n jadikan lebih mudah n dunia n ” | sed n

Dasar-dasar Menggunakan Sed

Mengetahui hal itu, sangat mudah digunakan sed untuk tugas-tugas dasar. Pertimbangkan contoh berikut:

sed -n p halo.txt

Dalam hal ini, saya menggunakan perintah n untuk mencetak isi file “hello”.

1. Memilih dan Memotong Stream Teks

Selanjutnya, Anda juga dapat memberi tahu sed untuk mengubah aliran teks ini. Misalnya, Anda dapat menggunakan perintah 2q untuk memerintahkannya agar hanya mencetak dua baris pertama dari file “hello”:

sed 2q hello.txt

Ini bisa sangat membantu jika Anda hanya ingin mendapatkan beberapa baris pertama dari file teks. Namun, Anda juga dapat menggunakan perintah p untuk memberi tahu sed agar hanya mencetak rentang baris dalam file.

sed -N 3 ,4p hello.txt

Pada contoh di atas, saya menggunakan sed untuk mencetak baris ketiga dan keempat dari file “hello”. Anda juga dapat menggunakan perintah p yang sama untuk mencetak baris yang tidak berdekatan di file teks Anda. Pertimbangkan contoh berikut:

sed -N 1 ~4p halo.txt

Dengan itu, saya memberi tahu sed untuk hanya mencetak baris pertama dan keempat dari file “hello”. Ini bisa berguna jika Anda ingin menggabungkan beberapa baris dari aliran yang berbeda menjadi satu file.

Misalnya, Anda dapat menggunakan sed dengan >GB

2. Menghapus Teks

Fungsi hebat lainnya dari sed adalah dengan menghapus teks dalam aliran. Tidak seperti pencetakan, ini memungkinkan Anda untuk memilih baris teks yang ingin Anda hilangkan dari aliran.

Sebagai contoh, saya menggunakan perintah d untuk menghapus baris kedua dan kelima dari file hello.

sed 2 ~5d halo.txt

Salah satu keuntungan menggunakan ini daripada perintah p adalah ini memungkinkan Anda untuk hanya menghapus baris yang tidak Anda inginkan. Ini berguna jika Anda ingin membersihkan file besar atau memangkas keluaran agar hanya menampilkan informasi yang Anda perlukan.

3. Menambahkan Teks Baru

Dengan itu, Anda juga dapat menggunakan sed dengan dirinya sendiri untuk memasukkan data baru ke dalam aliran teks Anda. Misalnya, Anda dapat menggunakan perintah untuk menambahkan baris teks ke aliran saat ini:

sed -n 2p halo.txt | sed a “ini adalah baris baru”

Selanjutnya, dimungkinkan juga untuk memasukkan GB

4. Substitusi Teks dan Manipulasi Stream

Salah satu penggunaan sed yang brilian adalah dengan memodifikasi aliran yang ada. Ini adalah saat Anda mengambil aliran input teks dan menggunakan fungsi bawaan sed untuk mengubah konten aliran.

Ini bisa dibilang fungsi sed yang paling kuat. Karena ini memberi Anda kemampuan untuk mengedit data secara dinamis saat melewati pipa. Misalnya, Anda dapat dengan mudah mengedit keluaran program seolah-olah itu adalah file teks:

printf “halo n jadikan lebih mudah n dunia n ” | sed s / dunia / situs web /

Dalam contoh ini, saya menggunakan perintah s untuk mengganti kata “dunia” dengan “situs web”. Berbeda dengan perintah sebelumnya, bagaimanapun, perintah ini menggunakan sintaks khusus untuk bekerja dengan baik.

Mengetahui hal itu, bentuk umum dari perintah s terlihat seperti ini:

s / [ regex ] / ( string ) / { opsi }

  • Kolom pertama menunjukkan bahwa ini adalah perintah pengganti. Dalam kebanyakan kasus, Anda hanya perlu menggunakan perintah s untuk mengubah aliran teks.
  • Kolom kedua menunjukkan kata yang ingin diganti menggunakan GB

Dalam hal ini, saya memberi tahu sed untuk membaca file “halo” dan mengganti contoh pertama kata “halo” dengan “selamat datang”. Saya kemudian dapat melakukan ini untuk setiap contoh kata “halo” dalam file dengan menambahkan opsi g :

sed s / halo / selamat datang / g halo.txt

Pertanyaan yang Sering Diajukan

Apakah mungkin untuk menulis modifikasi pada file menggunakan sed?

Ya! Selain menggunakan operator file, dimungkinkan untuk menggunakan sed untuk secara langsung menulis aliran teks yang dimodifikasi ke file. Untuk melakukan ini, Anda dapat menggunakan sed dengan flag -i atau menggunakan perintah w untuk menulis aliran ke file.

Namun, satu hal penting yang perlu diperhatikan adalah bahwa perintah ini tidak sesuai dengan standar POSIX. Ini berarti bahwa ini tidak akan berfungsi jika Anda menggunakan sed versi non-GNU.

Saya mendapatkan kesalahan “tidak terselesaikan” setiap kali saya menggunakan sed. Apakah instalasi saya rusak?

Sama sekali tidak! Ini adalah masalah yang terjadi ketika Anda tidak menulis perintah sed dengan benar. Ini umum dengan perintah substitusi di mana Anda mencoba mencocokkan atau mengganti string dengan spasi.

Misalnya, menjalankan perintah berikut akan menghasilkan kesalahan “tidak terselesaikan”: sed s/hello/welcome back/g hello.txt .

Anda dapat memperbaikinya dengan menambahkan karakter escape “” sebelum spasi Anda. Ini adalah karakter khusus yang memberi tahu sed untuk memasukkan spasi saat mencari atau mengganti teks.

Dengan itu, versi yang benar dari perintah di atas terlihat seperti ini: sed s/hello/welcome back/g hello.txt .

Selain “g”, apakah ada flag lain yang bisa saya gunakan dengan perintah “s”?

Ya! Selain dari g , Anda juga dapat menggunakan flag p untuk memberi tahu sed untuk menampilkan baris yang dimodifikasi.

Bendera lain yang dapat Anda gunakan dengan s adalah e . Ini memungkinkan Anda untuk menjalankan perintah shell setiap kali sed mengganti kata. Misalnya, Anda dapat menjalankan perintah berikut untuk menjalankan touch setiap kali menemukan
kata “halo” di file: sed s/hello /touch /e hello.txt .

Terakhir, Anda juga dapat menggunakan flag i untuk memberi tahu sed agar tidak peka huruf besar-kecil saat mencari kecocokan. Ini berguna jika Anda ingin mencocokkan kata yang sama tetapi dengan gaya huruf yang berbeda. Sebagai contoh, perintah berikut akan menggantikan kata “halo” dengan “selamat datang” terlepas dari huruf besar/kecilnya: sed s/HELLO/welcome/i hello.txt .

Jika semua pembicaraan ini membuat Anda penasaran dengan baris perintah Linux. Anda dapat membaca artikel kami sebelumnya di mana kami berbicara tentang beberapa petunjuk Bash paling menarik yang dapat Anda gunakan hari ini.

Kredit gambar: Hapus percikan

Related Posts

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *