Saya belajar sed. Semuanya tampak baik-baik saja sampai saya menemukan N (multi-line next). Saya membuat file ini (guide.txt) untuk keperluan latihan / pemahaman / konteks. Berikut adalah isi file tersebut ...
This guide is meant to walk you through a day as a Network
Administrator. By the end, hopefully you will be better
equipped to perform your duties as a Network Administrator
and maybe even enjoy being a Network Administrator that much more.
Network Administrator
Network Administrator
I'm a Network Administrator
Jadi tujuan saya adalah mengganti SEMUA instance dari "Administrator Jaringan" dengan "Pengguna Sistem". Karena instance pertama dari "Administrator Jaringan" dipisahkan oleh baris baru (\ n) Saya perlu operator multi-line berikutnya (N) untuk menambahkan baris yang dimulai dengan "Administrator" dengan baris sebelumnya yang berakhir dengan "Jaringan \ n" . Tidak masalah. Tapi saya juga ingin menangkap semua instance "Network Administrator" lainnya.
Dari penelitian saya, saya telah belajar bahwa saya akan membutuhkan dua perintah substitusi; satu untuk string yang dipisahkan baris baru dan satu untuk yang lain. Juga, ada beberapa jive terjadi karena baris terakhir berisi pertandingan substitusi dan multi-baris berikutnya. Jadi saya membuat ini ...
$ sed '
> s/Network Administrator/System User/
> N
> s/Network\nAdministrator/System\nUser/
> ' guide.txt
Ini mengembalikan hasil ini ...
This guide is meant to walk you through a day as a System
User. By the end, hopefully you will be better
equipped to perform your duties as a System User
and maybe even enjoy being a Network Administrator that much more.
System User
Network Administrator
I'm a System User
Saya berpikir bahwa penggantian satu baris akan menangkap semua contoh "normal" dari "Administrator Jaringan" dan menukar dengan "Pengguna Sistem", sedangkan pernyataan multi-baris akan bekerja dengan baik pada instance yang dipisahkan baris baru, tetapi karena Anda dapat melihatnya dikembalikan, apa yang saya anggap, hasil yang tidak terduga.
Setelah beberapa mengutak-atik, saya mendarat di ...
$ sed '
> s/Network Administrator/System User/
> N
> s/Network\nAdministrator/System\nUser/
> s/Network Administrator/System User/
> ' guide.txt
Dan voila, saya mendapatkan output yang diinginkan dari ...
This guide is meant to walk you through a day as a System
User. By the end, hopefully you will be better
equipped to perform your duties as a System User
and maybe even enjoy being a System User that much more.
System User
System User
I'm a System User
Mengapa ini bekerja dan skrip sed aslinya tidak? Saya benar-benar ingin memahami ini.
Terima kasih sebelumnya atas bantuannya.