Artikel ini adalah bagian dari seri tutorial perintah Unix sed yang sedang berjalan. Dalam artikel kami sebelumnya, kami mempelajari sed dengan perintah tunggal — mencetak, menghapus, mengganti, dan menulis file.
Sed menyediakan banyak perintah untuk melakukan sejumlah operasi dengan baris dalam file.
Dalam artikel ini mari kita tinjau cara menambahkan, menyisipkan, mengganti baris dalam file dan cara mendapatkan nomor baris file.
- Tambahkan Baris
- Sisipkan Baris
- Ganti Garis
- Hitung Garis
Mari kita buat file geekstuff.txt terlebih dahulu yang akan digunakan dalam semua contoh yang disebutkan di bawah.
$cat thegeekstuff.txt Linux Sysadmin Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available) Windows- Sysadmin, reboot etc.
Menambahkan Baris Menggunakan Perintah Sed
Sed memberikan perintah "a" yang menambahkan baris setelah setiap baris dengan alamat atau pola.
Syntax: #sed 'ADDRESS a\ Line which you want to append' filename #sed '/PATTERN/ a\ Line which you want to append' filename
Contoh Penambahan Sed 1. Tambahkan baris setelah baris ke-3 file.
Tambahkan baris "Gadget dan situs web keren" setelah baris ke-3. perintah sed “a” menyisipkan baris setelah kecocokan.
$ sed '3 a\ > Cool gadgets and websites' thegeekstuff.txt Linux Sysadmin Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Cool gadgets and websites Storage in Linux Productivity (Too many technologies to explore, not much time available) Windows- Sysadmin, reboot etc.
Contoh Tambahkan Sed 2. Tambahkan baris setelah setiap baris yang cocok dengan pola
Perintah sed di bawah ini akan menambahkan baris “Linux Scripting” setelah setiap baris yang cocok dengan pola “Sysadmin”.
$ sed '/Sysadmin/a \ > Linux Scripting' thegeekstuff.txt Linux Sysadmin Linux Scripting Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available) Windows- Sysadmin, reboot etc. Linux Scripting
Sed Append Contoh 3. Tambahkan baris di akhir file
Contoh berikut, menambahkan baris “Desain Situs Web” di akhir file.
$ sed '$ a\ > Website Design' thegeekstuff.txt Linux Sysadmin Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available) Windows- Sysadmin, reboot etc. Website Design
Menyisipkan Baris Menggunakan Perintah Sed
Perintah sed “i” digunakan untuk menyisipkan baris sebelum setiap baris dengan range atau pola.
Syntax: #sed 'ADDRESS i\ Line which you want to insert' filename #sed '/PATTERN/ i\ Line which you want to insert' filename
Contoh Sisipan Sed 1. Tambahkan satu baris sebelum baris ke-4 dari baris tersebut.
Tambahkan baris "Gadget dan situs web keren" sebelum baris ke-4. Perintah “a” menyisipkan baris setelah kecocokan sedangkan “i” menyisipkan sebelum kecocokan.
$ sed '4 i\ > Cool gadgets and websites' thegeekstuff.txt Linux Sysadmin Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Cool gadgets and websites Storage in Linux Productivity (Too many technologies to explore, not much time available) Windows- Sysadmin, reboot etc.
Contoh Sisipkan Sed 2. Sisipkan satu baris sebelum setiap baris dengan pola
Perintah sed di bawah ini akan menambahkan baris "Linux Scripting" sebelum setiap baris yang cocok dengan pola yang disebut 'Sysadmin".
$ sed '/Sysadmin/i \ > Linux Scripting' thegeekstuff.txt Linux Scripting Linux Sysadmin Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available) Linux Scripting Windows- Sysadmin, reboot etc.
Contoh Sisipkan Sed 3. Sisipkan baris sebelum baris terakhir file.
Tambahkan baris “Desain Situs Web” sebelum baris terakhir file.
$ sed '$ i\ > Website Design' thegeekstuff.txt Linux Sysadmin Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available) Website Design Windows- Sysadmin, reboot etc.
Ganti Baris Menggunakan Perintah Sed
Perintah “c” di sed digunakan untuk mengganti setiap baris yang cocok dengan pola atau rentang dengan baris baru yang diberikan.
Syntax: #sed 'ADDRESS c\ new line' filename #sed '/PATTERN/ c\ new line' filename
Contoh Ganti Sed 1. Ganti baris pertama file
Perintah di bawah ini menggantikan baris pertama file dengan "The Geek Stuff".
$ sed '1 c\ > The Geek Stuff' thegeekstuff.txt The Geek Stuff Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available) Windows- Sysadmin, reboot etc.
Contoh Ganti Sed 2. Ganti garis yang cocok dengan pola
Ganti setiap baris yang memiliki pola “Linux Sysadmin” menjadi “Linux Sysadmin – Scripting”.
$ sed '/Linux Sysadmin/c \ > Linux Sysadmin - Scripting' thegeekstuff.txt Linux Sysadmin - Scripting Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available) Windows- Sysadmin, reboot etc.
Contoh Ganti Sed 3. Ganti baris terakhir file
Perintah sed yang diberikan di bawah ini menggantikan baris terakhir file dengan "Baris Terakhir file".
$ sed '$ c\ > Last line of the file' thegeekstuff.txt Linux Sysadmin Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available) Last line of the file
Mencetak Nomor Baris Menggunakan Perintah Sed
“=" adalah perintah di sed untuk mencetak nomor baris saat ini ke output standar.
Syntax: #sed '=' filename
Sintaks perintah send di atas mencetak nomor baris di baris pertama dan baris asli dari file di baris berikutnya .
Perintah sed ‘=’ hanya menerima satu alamat, jadi jika Anda ingin mencetak nomor baris untuk rentang baris, Anda harus menggunakan kurung kurawal.
Syntax: # sed -n '/PATTERN/,/PATTERN/ { = p }' filename
Contoh Nomor Baris Sed 1. Temukan nomor baris yang berisi pola
Perintah sed di bawah ini mencetak nomor baris yang cocok dengan pola “Database”
$ sed -n '/Databases/=' thegeekstuff.txt 2
Contoh Nomor Baris Sed 2. Rentang Pencetakan nomor baris
Cetak nomor baris untuk kecocokan garis dari pola “Oracle” hingga “Productivity”.
$ sed -n '/Oracle/,/Productivity/{ > = > p > }' thegeekstuff.txt 2 Databases - Oracle, mySQL etc. 3 Security (Firewall, Network, Online Security etc) 4 Storage in Linux 5 Productivity (Too many technologies to explore, not much time available)
Contoh Nomor Baris Sed 3. Cetak jumlah total baris dalam file
Nomor baris dari baris terakhir file akan menjadi total baris dalam file. Pola $ menentukan baris terakhir file.
$ sed -n '$=' thegeekstuff.txt 6