SED w macOS
W byciu informatykiem dla programistów tudzież modnym człowiekiem-orkiestrą od DevOps trzeba spełnić różne wymagania. Niektórzy mają problem z brodą (-:
Mi się trafił za to problem z jabłkiem. W sumie od po dwóch latach pracy mogę śmiało stwierdzić, ze macOS jest wygodnym środowiskiem pracy do nowomodnych zabawek i mniej nią niego klnę ni na Windows. Chociaż z zazdrością czasem patrzę na rysik w Surface.
Przechodzą do problemu przy pracy z tytułowym SEDem było coś nie tak. Niby prosta komenda do zmiany zawartości w pliku pomiędzy dwoma znacznikami, a nie działa - sed -n '/foo/{p;:a;N;/bar/!ba;s/.*\n/REPLACEMENT\n/};p' file
i wali głupim błędem sed: 1: "/foo/{p;:a;N;/bar/!ba;s ...": unexpected EOF (pending }'s)
.
Myślałem, że może ja nie potrafię po sedowemu, wklejam w CentOSa i wszystko ok. Jak się okazuje SED w macOS jest przedpotopowy. 2005 rok! Czyli w momencie pisania już ma 13 lat…
Naprawa problemu jest banalna i wystarczy zainstalować wersję GNU SEDa. Najłatwiej jest to wykonać przez brew jednym poleceniem.
brew install gnu-sed --with-default-names
Pierdoła o której człowiek zapomina i przy zmianie komputer odkrywa na nowo ;-)