üzerine "tanımsız etiketini" sed Geçenlerde Cygwin Linux üzerinde veya altında bu basit sed
ifade çalışmaları ince ama bir "tanımlanmamış etiket" hatası ile Mac üzerinde başarısız olduğunu öğrendim GNU muadili farklı seçeneklerle BSD varyantı. Ancak man sed
açıkça sed
'un MacOS sürümünün etiketleri desteklediğini gösteriyor, bu yüzden neden bu hatayı ve en önemlisi onu nasıl çözebilir?MacOS
MacOS
cevap
etiketin adı değil yarı kolonda, ilk edebi yeni satır ile sona erer. Sorunu çözmenin iki kolay yolu vardır. literal yeni satırları ekleyin:
sed '/SUCCESSFUL/d
/\[java\]/!b label
s/\s\+\[java\]//
/^\s*$$/d; /Compiling/!d
:label
/^\s*$$/d
s/^/monitor: /'
Veya kullanım birden -e
seçenekleri:
sed -e '/SUCCESSFUL/d ; /\[java\]/!b label' \
-e 's/\s\+\[java\]//; /^\s*$$/d; /Compiling/!d' \
-e':label' -e'/^\s*$$/d; s/^/monitor: /'
SO ile ilgili benzer sorular var ama bunların çoğu, platformlar arasında farklılık gösteren -i
davranışından kaynaklanıyor, bu yüzden farklı.
Bu durumda, sorun oldukça basittir: etiket referansları yalnızca sed
BSD sürümünde geriye doğru gidebilirken, GNU sürümü ileriye dönük referansların kullanılmasına izin veriyor gibi görünüyor. Bu MacOS'ta, :label
,b label
'dan önce görünmelidir. Çözüm, ya etiketin daldan önce tanımlanması ya da yukarıdaki ifadenin gerçekleşmesi durumunda, dalın bir tür "eğer bu kalıp mevcut değilse ... ileriye atlamak" şeklindeki ifadesi yeniden yazmaktır. Bu durumda ifade ilk etapta etiketi gerekmez şekilde genişletilebilir:
sed '/SUCCESSFUL/d ; /\s+\[java\]\s*/d; /\[java\]/s/\s\+\[java\]//; /Compiling/!d; /^\s*$$/d; s/^/monitor: /'
- 1. MacOS
- 2. PHP7, MacOS
- 3. GERÇEKTEN MacOs
- 4. Madde ve MacOS MenuBar
- 5. İçindekiler/MacOS, 4.5.2
- 6. macOS Sierra Spot Uzantıları
- 7. apache MacOS Sierra
- 8. Intel HAXM 6.0.4 MacOS ile uyumlu değil
- 9. yakalamak türetilen istisnalar tipleri Clang/MacOS X
- 10. Visual Studio MacOS hatası MSB4057: "Build" hedefi
- 11. MacOS terminalinde gdb nasıl yüklenir Sierra
- 12. Çok kullanıcılı bir MacOS Sierra Kurulumunda Homebrew nasıl kullanılır?
- 13. Çekirdek Verileri. Senkronizasyon sorunları. (MacOS vs iOS - çakışmalar)
- 14. MacOS X dock'undan nasıl bir komut dosyası başlatabilirim?
- 15. MacOS X'de bir daemon çalıştırmak için kullanıcı oluşturuyor musunuz?
- 16. Neden ios/macos için 'UIViewController alt sınıfını' kakao altında göremiyorum?
- 17. MacOS Sierra, Xcode 8 üzerinde Kod Işareti Hatası
- 18. Web tarayıcısını MacOS uygulamasında yerleştirme Delphi XE2'yi kullanarak uygulama
- 19. x64 MacOS X 10.7'deki "node --prof" sonucunun nasıl denetlenir?
- 20. "." Kaydetmenin bir yolu var mı MacOS olmadan NSSavePanel kullanarak dosya beni uyarır?
- 21. Yerel görünümlü widget'lar ile MacOS için bağımsız bir PyGTK uygulama paketi nasıl geliştirir ve oluştururum?
- 22. Appium Doktor - MacOS üzerinde PATH değişkeninin içine $ java_home/bin ayarlamak mümkün 10.12
- 23. Bağlı iOS cihazlardan mesaj almak için macOS "günlük akışı" veya "günlük gösterisi" ni kullanabilir misiniz?
- 24. PHP sürekli DNS ben MacOS X altında bir CentOS sanal makine üzerinde PHP çalıştırıyorum
- 25. Python MacOS üzerinde 2.7: Matplotlib ValueError neden: Bilinmeyen yerel: UTF-8
- 26. MacOS Sierra, benim git, oh noes kırdı - Sierra ve High Sierra için geçerli
- 27. MacOS Sierra güncellemesinden sonra git yolu nasıl düzeltilir? "Sierra" ve ben intellijIdea açtığınızda, aşağıdaki hatayı alıyorum:
- 28. F # Xamarin için MacOS X: TargetFrameworkVersionv4.5.2 bu araç takımı tarafından desteklenmiyor (ToolsVersion4.0)
- 29. GWT'yi kullanarak işletim sistemini nasıl tespit edebilirim?
- 30. Semboller bir .a dosyasında nasıl dökülür
+1 ve İyi yakalamak. Ayrıca, tek liner-itis :-) yerine iyi girmiş kodlar gibi, içeriğin girintili kod olarak görselleştirilmesine yardımcı olur. – shellter