각 줄 뒤에 줄을 추가하기 위해 sed를 사용하려고합니다 text += num.toString(16);
.
내 접근 방식은 다음과 같습니다 Replace every new line with a new line, plus text += num.toString(16);
. 그건:
sed 's/\
/\
text \+= num\.toString\(16\);/g'
하지만 나는 이것을 작동시킬 수 없습니다. 나는 unterminated substitute pattern
sed에서 그것을 얻습니다.
여기에 문제가 있나요?
BSD sed를 사용하고 있습니다.
답변1
다음은 사용할 수 없습니다:
s/\
/
s/pattern/replacement/
양식의 패턴 공간에서 개행 문자 와 일치합니다 . 패턴을 해석하는 구현에 따라 다릅니다. GNU sed와 BSD sed는 모두 문자 그대로 개행 문자로 취급하지만 BSD sed는허용되지 않음그리고오류가 발생합니다.
일반적으로 입력 줄 끝에서는 개행을 일치시킬 수 없지만 \n
명령의 결과로 패턴 공간에 나타나는 줄 바꿈을 일치시킬 수 있습니다 N
.
올바른 방법은 POSIXLY입니다.
sed 'a\
text += num.toString(16);
'
또는:
sed 's/$/\
text += num.toString(16);/'
답변2
다음에도 동일하게 적용됩니다 awk
.
awk '{print $0"\ntext += num.toString(16);"}' file
이 경우 각 줄은 그대로 인쇄된 다음 새 줄에 인쇄됩니다 awk
.text += num.toString(16);