# Karakteri ne anlama gelir: / bin / sed -e 's # abc # zzz # g'?


Yanıtlar:


14

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'

24

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

En azından GNU sed'de, (substitute) komutu /dışındaki bağlamlarda alternatif bir karakterle değiştirilebileceğini sbelirtmek gerekir - ancak bu durumda, ilk kez sed '/foo/d'( örneğin, eşleşen satırları sil foo)sed '\#foo#d'
steeldriver

@steeldriver gerçekten! - Ravexina'nın cevabına bunu eklediğini gördüm, bu yüzden belki de benimkini bırakacağım :)
Zanna

1
Akışın ayırıcı karakter içerip içermemesi önemli değildir. Önemli olan, arama dizesinin veya yeni dizenin ayırıcı karakter içerip içermediğidir.
kasperd

@kasperd oh evet, doğru. Biraz düzenledim :)
Zanna

@ Zanna'nın cevabı daha çok önemlidir: "s" komutundan sonraki ilk karakter, bu komutta kullanılan ayırıcıyı belirler. Burada herhangi bir karakteri kullanabilirsiniz . sbabebile aynı şeyi yapar s/a/e/.
rexkogitans
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.