Artikel ini adalah bagian dari seri Tutorial Unix Sed. Pada artikel sebelumnya, kita telah membahas tentang operasi sed print , operasi sed delete dan sed find and replace.
Pada artikel ini, mari kita tinjau cara mengekstrak bagian dari satu file dan menulisnya ke file lain menggunakan sed.
Sed menyediakan perintah “w” untuk menulis data ruang pola ke file baru.
Sed membuat atau memotong nama file yang diberikan sebelum membaca baris input pertama dan menulis semua kecocokan ke file tanpa menutup dan membuka kembali file tersebut.
Syntax: #sed 'ADDERSSw outputfile' inputfilename #sed '/PATTERN/w outputfile' inputfilename
Sed membaca sebuah baris dan menempatkannya dalam buffer pola dan menulis buffer pola ke file output yang diberikan sesuai dengan perintah yang diberikan.
Mari kita buat file geekstuff.txt terlebih dahulu yang akan digunakan dalam semua contoh yang disebutkan di bawah.
# cat thegeekstuff.txt 1. Linux - Sysadmin, Scripting etc. 2. Databases - Oracle, mySQL etc. 3. Hardware 4. Security (Firewall, Network, Online Security etc) 5. Storage 6. Cool gadgets and websites 7. Productivity (Too many technologies to explore, not much time available) 8. Website Design 9. Software Development 10.Windows- Sysadmin, reboot etc.
Mari kita tinjau beberapa contoh perintah tulis di sed.
1. Tulis baris pertama file
Dalam contoh ini, 1 (alamat) merujuk baris pertama dari input dan w menulis buffer pola ke file output “output.txt”
$ sed -n '1w output.txt' thegeekstuff.txt $ cat output.txt 1. Linux - Sysadmin, Scripting etc.
2. Tulis baris pertama &terakhir file
Dalam contoh ini, 1 dan $ masing-masing merujuk baris pertama dan terakhir.
$ sed -n -e '1w output.txt' -e '$w output.txt' thegeekstuff.txt $ cat output.txt 1. Linux - Sysadmin, Scripting etc. 10.Windows- Sysadmin, reboot etc.
3. Tulis baris yang cocok dengan pola Storage atau Sysadmin
Dalam contoh ini perintah sed menulis baris yang cocok dengan pola “Storage” atau “Sysadmin”.
$ sed -n -e '/Storage/w output.txt' -e '/Sysadmin/w output.txt' thegeekstuff.txt $ cat output.txt 1. Linux - Sysadmin, Scripting etc. 5. Storage 10.Windows- Sysadmin, reboot etc.
4. Tulis baris dari mana polanya cocok hingga akhir file
Dalam contoh ini, /Storage/,$ mewakili kecocokan baris dari Storage hingga akhir file.
$ sed -n '/Storage/,$w output.txt' thegeekstuff.txt $ cat output.txt 5. Storage 6. Cool gadgets and websites 7. Productivity (Too many technologies to explore, not much time available) 8. Website Design 9. Software Development 10.Windows- Sysadmin, reboot etc.
5. Tulis baris yang cocok dengan pola dan dua baris berikutnya dari yang cocok
Dalam contoh ini, perintah kirim menulis baris yang cocok untuk "Penyimpanan" dan dua baris di sebelahnya.
$ sed -n '/Storage/,+2w output.txt' thegeekstuff.txt $ cat output.txt 5. Storage 6. Cool gadgets and websites 7. Productivity (Too many technologies to explore, not much time available)