ben bash Bu kodu çalıştırırsanız:Sed, neden tüm oluşumları değiştirmez?
echo dog dog dos | sed -r 's:dog:log:'
o verir çıkışı:
log dog dos
Nasıl bu köpek tüm tekrarlarını değiştirmek yapabilir? Sen sonunda g
koymak zorunda
ben bash Bu kodu çalıştırırsanız:Sed, neden tüm oluşumları değiştirmez?
echo dog dog dos | sed -r 's:dog:log:'
o verir çıkışı:
log dog dos
Nasıl bu köpek tüm tekrarlarını değiştirmek yapabilir? Sen sonunda g
koymak zorunda
Sen g
değiştirici eklemek gerekir : sed üzerinde fantastik bir belge için
echo dog dog dos | sed -e 's:dog:log:g'
, http://www.grymoire.com/Unix/Sed.html kontrol edin. Bu küresel bayrağı burada açıklanmıştır: http://www.grymoire.com/Unix/Sed.html#uh-6
GNU sed
için resmi belgeler Sen küresel ikamesi için `g` bayrağı gerek http://www.gnu.org/software/sed/manual/
Teşekkür ederim, işe yaradı :) – niagr
, bu "küresel" anlamına gelir: sed örüntü tamponun içindekiler küresel değiştirme gerçekleştirir böylece
echo dog dog dos | sed -r 's:dog:log:g'
^
sed -e yerine, sed -r yerine kullanılmalıdır. –
@DylanDaniels Ubuntu'daki "adam sedye" ye göre, "-r" seçeneği "uzatılmış düzenli ifadeler kullan" anlamına gelir. Yani verilen komut iyi çalışır, ancak uzun süreli normal ifadelerin özelliklerine ihtiyaç duymaz. –
mevcuttur, ya burada' -r' seçeneği gerekmez . –