#
Karakter bu satırda ne anlama geliyor:
/bin/sed -e 's#abc#zzz#g'
#
Karakter bu satırda ne anlama geliyor:
/bin/sed -e 's#abc#zzz#g'
Yanıtlar:
Bu bir ayırıcı, tıpkı aynı "/"
, olduğu gibi 's/abc/zzz/g'
.
"abc" aramasının "zzz" ile değiştirilmesi anlamına gelir, global flag ile, sadece birincisinin değil, satırdaki tüm "abc" ler için yapılması anlamına gelir.
Bir kalıp adresi için alternatif bir ayırıcı da kullanabilirsiniz, ancak bu durumda doğru bir şekilde yorumlanması için kaçmanız gerekir:
sed -r '\#abc#p'
Bir sınırlayıcı veya ayırıcıdır. En yaygın olarak kullanılan biri /
olarak
sed 's/old/new/' file
Ancak sed, komut (lar) dan sonraki ilk karakteri ayırıcı olarak alacaktır. Herhangi bir uygun karakteri kullanabilirsiniz, örneğin ...
sed 's%old%new%' file
Dosya /
(veya diğer geleneksel sınırlayıcı karakterler içeriyorsa) bu çok kullanışlıdır . İfadenize koymak zorunda kalmayacağınızı bildiğiniz bazı karakterleri ayırıcı olarak seçebilir sed
, böylece çok fazla can sıkıcı kaçış kaydedebilirsiniz .
Değiştirmek istediğinizi varsayalım
https://askubuntu.com/questions
ile
https://askubuntu.com/posts
Kullanabilirsin
sed 's/https:\/\/askubuntu.com\/questions/https:\/\/askubuntu.com\/posts/' file
Ama kullanmak daha iyi
sed 's|https://askubuntu.com/questions|https://askubuntu.com/posts|' file
sbabeb
ile aynı şeyi yapar s/a/e/
.
/
dışındaki bağlamlarda alternatif bir karakterle değiştirilebileceğinis
belirtmek gerekir - ancak bu durumda, ilk kezsed '/foo/d'
( örneğin, eşleşen satırları silfoo
)sed '\#foo#d'