2020. 12. 17. 14:36ㆍIT/M . a . c
기본적으로 맥에서 사용되는 sed는 리눅스의 gnu sed가 아닌 POSIX의 sed를 사용하고 있습니다.
이 POSIX의 sed는 gnu sed에 비해 많은 옵션을 사용할 수 없게 되어 있습니다.
다행스럽게도 맥에서 gnu sed를 설치하고 사용이 가능한 방법이 있습니다.
하지만 gnu sed를 사용하기 위해서는 일반적인 sed가 아닌 gsed로 실행을 해주어야 합니다.
쉘 스크립트 작성할 때 그 스크립트가 맥에서만 쓰이면 그냥 gsed로 작성해도 상관이 없는데
다른 리눅스 플랫폼에서 스크립트를 실행시켜야 하는 경우 실행명령어의 차이로 문제가 생길 수 있습니다.
그래서 이 포스트에서는 리눅스에서 사용하는 GNU/Linux의 sed를 설치하는 방법과
기존 sed를 대체하는 방법에 대해 설명을 드리려 합니다.
그럼 시작해보겠습니다.
1. 먼저 맥의 패키지 관리툴인 brew로 GNU/Linux의 sed를 설치합니다.
brew install gnu-sed
2. sed 명령어 치환
이전에는 설치시에
brew install gnu-sed --with-default-names
로 직접 치환이 가능했으나 현재(2019년 1월 이후)는 이 옵션이 막혀있어 불가능합니다.
지금은 gnu-sed를 설치 후 메세지에 아래 내용을 환경변수에 추가하라는 설명이 나옵니다.
...
GNU "sed" has been installed as "gsed".
If you need to use it as "sed", you can add a "gnubin" directory
to your PATH from your bashrc like:
PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
...
먼저 현재 sed의 파일 Path를 확인해 봅시다.
which sed
/usr/bin/sed
현재의 POSIX sed의 위치를 확인 후 환경변수에 Path를 추가해주기 위해 아래 스크립트를 실행하여 줍니다.
sed -i -e "/\$PATH$/s/\$PATH$/\/usr\/local\/opt\/gnu-sed\/libexec\/gnubin:\$PATH/g" ~/.bash_profile
. ~/.bash_profile
환경변수에 추가되었는지 확인해 줍니다.
which sed
/usr/local/opt/gnu-sed/libexec/gnubin/sed
명령어의 Path가 변경된 것을 확인할 수 있습니다.
이렇게 환경변수에 넣어주는 것으로 일반적인 sed 만으로 GNU/Linux의 sed가 실행이 가능하게 됩니다.
즐거운 맥 라이프 되시길
'IT > M . a . c' 카테고리의 다른 글
ssh 접속시 간편하게 사용하기 (0) | 2023.06.26 |
---|---|
맥에서 ppk 파일 변환하기 (0) | 2022.05.27 |
맥에서 최신 Bash 사용하기 (0) | 2019.09.13 |
맥에서 jellybeans color schema 사용하기 (0) | 2019.04.25 |