Maven için bir renklendirme komut dosyasının çekirdeği olarak birkaç değiştirme komutu çalıştırıyorum . sed
Komutlardan biri, burada tartışıldığı gibi kabukta bulmaya çalışan normal bir ifade kullanır . Mevcut (çalışmayan) uygulama burada bulunabilir .
Komutun varyantlarından birini betiğe dahil ettiğimde farklı davranışlar ortaya çıkıyor:
Varyant 1:
$ sed -re "s/([a-zA-Z0-9./\\ :-]+)/\1/g"
Senaryoya uyarlandı:
-re "s/WARNING: ([a-zA-Z0-9./\\ :-]+)/${warn}WARNING: \1${c_end}/g" \
Hata: Kabuk, yazacakmışım gibi aynı bilgileri veriyor $ sed
. Garip!?
Varyant 2:
$ sed -e "s/\([a-zA-Z0-9./\\ :-]\+\)/\1/g"
Senaryoya uyarlandı:
-e "s/WARNING: \([a-zA-Z0-9./\\ :-]\+\)/${warn}WARNING: \1${c_end}/g" \
Hata:
sed: -e ifade # 7, karakter 59: "s 'komutunun RHS'sinde geçersiz referans \ 1
-i
(yerinde düzenle seçeneğini) ile birleştirmiştim-re
,-ire
(böylelikle parçayı bağımsız değişken olarak-i
tüketiyordum ve dolayısıyla genişletilmiş normal ifade modu etkinleştirilmiyordu); sorunu düzeltmek için değiştirerek .re
SUFFIX
-i -re