Maven için bir renklendirme komut dosyasının çekirdeği olarak birkaç değiştirme komutu çalıştırıyorum . sedKomutlardan 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-itüketiyordum ve dolayısıyla genişletilmiş normal ifade modu etkinleştirilmiyordu); sorunu düzeltmek için değiştirerek .reSUFFIX-i -re