sed
GNU뿐만 아니라 BSD 와 호환되기를 원하는 sed replacement 명령이 있습니다 sed
. 이 경우 확장 정규 표현식은 필요하지 않으므로 문제가되지 않습니다. 내 주요 문제는 두 문자열 sed
이 대체 문자열 의 문자 이스케이프 시퀀스를 해석 하는 방식의 차이입니다 . 대체 문자열에는 탭과 줄 바꿈이 포함되어 있으며 유지 보수를 쉽게하기 위해 명령 문자열에 표시되기를 원하지만 BSD sed
는 이스케이프 시퀀스를 해석하지 않으며 GNU sed
는 그렇게 합니다. sed
BSD에서 이러한 이스케이프 시퀀스를 해석 하도록 지시하는 적절한 방법은 무엇입니까 ? 다음 두 스 니펫은 내 문제를 잘 보여줍니다.
암소 비슷한 일종의 영양 sed
echo ABC | sed 's/B/\n\tB\n'
예 일드
A
B
C
BSD sed
echo ABC | sed 's/B\n\tB\n'
수확량
AntBnC
분명히, \n
그리고 \t
BSD로 이스케이프 시퀀스로 해석되지 않는다sed
이제 내 질문에. BSD sed
맨 페이지 에 따르면 :
대체 문자열에 개행 문자를 지정하려면 앞에 백 슬래시를 사용하십시오.
이것은 백 슬래시 로 리터럴 개행 을 선행해야한다는 것을 의미합니까 ? 대체 텍스트 sed
와 같이 이스케이프 시퀀스를 해석 하도록 지시하는 적절한 방법은 무엇입니까 \n
?
sed
. 결국 awk를 사용하는 것이 좋습니다. 내가 인용 한 BSD sed 맨 페이지의 해석에 대해 어떻게 생각하십니까?