Baru-baru ini saya melihat perintah pengganti di mana penulis telah /
diganti dengan !
seperti ini::s!abc!ABC!g
Saya mencoba menemukan beberapa dokumentasi tentang penggunaan ini tetapi saya tidak menemukan sesuatu yang relevan. Jadi saya mencoba bereksperimen sendiri dan sekali lagi saya tidak bisa menemukan perbedaan nyata antara kedua tanda tersebut. Inilah yang saya temukan:
- Tidak mungkin mencampur
!
dan/
menjalankan perintah. Misalnya:s!abc/ABC
gagal. - Mungkin bermanfaat untuk digunakan
!
agar tidak keluar/
dari pola. Misalnya jika saya ingin mengganti</
dengan yang%
bisa saya gunakan:%s!</!%!g
sebagai ganti:%s/<\//%/g
. - Tampaknya dalam beberapa kasus beberapa regex tidak akan bekerja dengan
/
dan berfungsi dengan baik!
tetapi karena saya tidak benar-benar ahli regex saya tidak yakin akan hal itu.
Jadi pertanyaan saya sederhana: Apa keuntungan menggunakan !
perintah pengganti dan kapan saya harus memutuskan untuk menggunakannya /
?
substitute
statox
sumber
sumber
Jawaban:
Dari
:help :global
:Seperti yang sudah Anda rancang dari eksperimen Anda, ini untuk mencegah apa yang disebut " leaning toothpick syndrome ". Pertimbangkan ini:
melawan:
Bentuk kedua jelas jauh lebih mudah dibaca.
Ini adalah satu-satunya alasan Anda dapat mengubah pembatas; untuk membuatnya lebih mudah dibaca bagi kita manusia. Komputer tidak peduli.
Beberapa program lain bahkan lebih fleksibel, di GNU
sed
misalnya Anda dapat digunakanx
sebagai pembatas jika Anda mau.sed sxaxbxg file
sama dengansed s/a/b/g file
.sumber
:%s@/home/martin/test@/home/jake/x@
, karena "gemuk"@
membuatnya lebih mudah untuk melihat di mana masing-masing bagian pernyataan dimulai / berakhir.:%s#/home/martin/test#/home/jake/x#
karya lebih baik, tapi itu hanya pendapat pribadi.