
다음 sed
명령을 사용하고 있습니다.
cat version | sed -e 's/[0-9][0-9][0-9][0-9][0-9:M]*-[abp]/Ver\n/'
다음과 같이 정규화됩니다.
4330M-p -> Ver<newline>
이는 GNU SED에서는 잘 작동하지만 Mac OS X의 BSD SED에서는 \n이 n
다음과 같이 변합니다.
4330M-p -> Vern
시간이 지남에 따라 정적 문자열로 변경되는 버전 번호와 그 뒤에 개행 문자가 포함된 일부 출력을 정규화합니다. 이는 sed
처리 후 출력을 알려진 골든 파일과 비교하는 테스트의 일부로 사용되며 diff
버전 번호 변경으로 인한 실패를 원하지 않으며 추가로 우리 목적에 맞게 개행을 추가해야 합니다.
의 GNU 및 BSD 버전 모두에서 작동하는 방식으로 개행을 추가하는 문자열로 어떻게 바꿀 수 있습니까? 아니면 Mac OS X에 sed
GNU를 설치해야 합니까 ?sed
답변1
다음과 같이 스크립트에서 리터럴 개행 문자를 만들 수 있습니다.
cat version | sed -e 's/[0-9][0-9][0-9][0-9][0-9:M]*-[abp]/Ver\
/'