Mari kita tinjau cara mencetak baris file menggunakan alamat dan pola di bagian pertama tutorial sed ini.
Kami akan memposting beberapa tutorial sed yang mengagumkan dengan contoh dalam beberapa minggu mendatang.
Pengenalan Unix Sed
- sed adalah editor berorientasi aliran "non-interaktif". Karena bersifat "non-interaktif", ini dapat digunakan untuk mengotomatiskan pengeditan jika diinginkan.
- Nama sed adalah singkatan dari stream editor, dan utilitas ini mendapatkan banyak perintahnya dari ed line-editor (ed adalah editor teks UNIX pertama).
- Ini memungkinkan Anda mengedit banyak file, atau melakukan operasi pengeditan umum tanpa harus membuka vi atau emacs.
- sed membaca dari file atau dari input standarnya, dan mengeluarkan output ke output standarnya.
- sed memiliki dua buffer yang disebut pattern buffer dan hold buffer. Keduanya awalnya kosong.
Metodologi Kerja Unix Sed
Ini disebut sebagai satu siklus eksekusi. Siklus berlanjut hingga akhir file/input tercapai.
- Baca seluruh baris dari stdin/file.
- Menghapus baris baru yang tertinggal.
- Menempatkan garis, dalam buffer polanya.
- Ubah buffer pola sesuai dengan perintah yang diberikan.
- Cetak buffer pola ke stdout.
Operasi Pencetakan di Sed
Perintah Linux Sed memungkinkan Anda untuk mencetak hanya baris tertentu berdasarkan nomor baris atau pola yang cocok. “p” adalah perintah untuk mencetak data dari buffer pola.
Untuk menekan pencetakan otomatis ruang pola, gunakan perintah -n dengan sed. sed -n option tidak akan mencetak apa pun, kecuali jika permintaan eksplisit untuk mencetak ditemukan.
Syntax: # sed -n 'ADDRESS'p filename # sed -n '/PATTERN/p' filename
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.
Contoh Format ALAMAT 5 Sed
Format Alamat Sed 1:NUMBER
Ini hanya akan cocok dengan baris ke-N di input.
# sed -n ‘N’p filename
Misalnya, 3p mencetak baris ketiga dari file input thegeekstuff.txt seperti yang ditunjukkan di bawah ini.
# sed -n '3'p thegeekstuff.txt 3. Hardware
Format Alamat Sed 2:NUMBER1~NUMBER2
M~N dengan perintah “p” mencetak setiap baris ke-N mulai dari baris M.
# sed -n ‘M~N’p nama file
Misalnya, 3~2p mencetak setiap baris ke-2 mulai dari baris ke-3 seperti yang ditunjukkan di bawah ini.
# sed -n '3~2'p thegeekstuff.txt 3. Hardware 5. Storage 7. Productivity (Too many technologies to explore, not much time available) 9. Software Development
Format Alamat Sed 3:MULAI,AKHIR
M,N dengan perintah “p” mencetak baris ke-M ke baris ke-N.
# sed -n ‘M,N’p nama file
Misalnya, 4,8p mencetak dari baris ke-4 ke baris ke-8 dari file input thegeekstuff.txt
# sed -n '4,8'p thegeekstuff.txt 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
Format Alamat Sed 4:Baris Terakhir ‘$’
$ dengan perintah “p” hanya cocok dengan baris terakhir dari input.
# sed -n ‘$’p filename
Misalnya, $p hanya mencetak baris terakhir seperti yang ditunjukkan di bawah ini.
# sed -n '$'p thegeekstuff.txt 10.Windows- Sysadmin, reboot etc.
Format Alamat Sed 5:NUMBER,$
N,$ dengan perintah “p” mencetak dari baris ke-N ke akhir file.
# sed -n ‘N,$p’ nama file
Misalnya 4,$p mencetak dari baris ke-4 hingga akhir file.
# sed -n '4,$p' thegeekstuff.txt 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.
6 Contoh Format POLA Sed
Format Pola Sed 1:POLA
POLA bisa berupa ekspresi reguler unix. Perintah di bawah ini hanya mencetak baris yang cocok dengan pola yang diberikan.
# sed -n /PATTERN/p nama file
Misalnya, mengikuti hanya mencetak baris yang cocok dengan pola “Sysadmin”.
# sed -n /Sysadmin/p thegeekstuff.txt 1. Linux - Sysadmin, Scripting etc. 10.Windows- Sysadmin, reboot etc.
Format Pola Sed 2:/PATTERN/,ADDRESS
# sed -n ‘/PATTERN/,Np’ nama file
Misalnya, berikut ini mencetak garis yang cocok dengan pola ke baris ke-N, dari input. Baris ke-3 cocok dengan pola “Perangkat Keras”, sehingga tercetak dari baris ke-3 hingga ke baris ke-6.
# sed -n '/Hardware/,6p' thegeekstuff.txt 3. Hardware 4. Security (Firewall, Network, Online Security etc) 5. Storage 6. Cool gadgets and websites
Format Pola Sed 3:ALAMAT,/PATTERN/
Ini mencetak dari baris ke-N input, ke baris yang cocok dengan polanya. Jika polanya tidak cocok, pola akan dicetak hingga akhir input.
# sed -n ‘N,/PATTERN/p’ nama file
Misalnya, baris ke-4 cocok dengan pola “Keamanan”, sehingga tercetak dari baris ke-3 ke baris ke-4.
# sed -n '3,/Security/p' thegeekstuff.txt 3. Hardware 4. Security (Firewall, Network, Online Security etc)
Format Pola Sed 4:/PATTERN/,$
Mencetak dari baris cocok dengan pola yang diberikan ke akhir file.
# sed -n ‘/PATTERN/,$p’ nama file
# sed -n '/Website/,$p' thegeekstuff.txt 8. Website Design 9. Software Development 10.Windows- Sysadmin, reboot etc.
Format Pola Sed 5:/PATTERN/,+N
Ini mencetak garis yang cocok dengan pola dan N baris berikutnya mengikuti garis yang cocok.
# sed -n ‘/PATTERN/,+Np’ nama file
Misalnya, berikut akan mencetak baris ke-5 yang cocok dengan pola /Storage/ dan dua baris berikutnya setelah /Storage/.
# sed -n '/Storage/,+2p' thegeekstuff.txt 5. Storage 6. Cool gadgets and websites 7. Productivity (Too many technologies to explore, not much time available)
Format Pola Sed 6:/PATTERN/,/PATTERN/
Mencetak bagian file di antara dua ekspresi reguler (termasuk baris yang cocok ).
# sed -n ‘/P1/,/P2/p’ nama file
Misalnya, baris ke-5 cocok dengan "Penyimpanan" dan baris ke-8 cocok dengan "Desain", jadi baris ke-5 sampai ke-8.
# sed -n '/Storage/,/Design/p' thegeekstuff.txt 5. Storage 6. Cool gadgets and websites 7. Productivity (Too many technologies to explore, not much time available) 8. Website Design