Gnu sed에서 a 및 i 명령을 사용하여 \n을 사용하여 개행 문자를 추가하는 방법은 무엇입니까?

Gnu sed에서 a 및 i 명령을 사용하여 \n을 사용하여 개행 문자를 추가하는 방법은 무엇입니까?

아래 예에서는 리터럴 줄 바꿈을 사용하기 전후에 빈 줄을 추가할 수 있습니다 3. 대신 사용할 수 있나요 \n? 저는 Gnu sed 4.5를 사용하고 있습니다.

root@u1804:~# seq 5 | sed -r -e '/3/{i\
> ' -e 'a\
> ' -e '}'
1
2

3

4
5
root@u1804:~#

답변1

이것을 사용하면 \n작동하지만 명령 앞뒤에 두 개의 개행 문자가 생기고 i\이미 a\인쇄 패턴 공간 앞뒤에 하나의 개행 문자가 있으므로

seq 5 | sed  -e '3i\\n' -e '3a\\n'

인쇄

1
2


3


4
5

어떤 이유로든 한 줄에 표시하려면 여러 -e표현식을 사용할 수 있습니다.

seq 5 | sed  -e '3{i\' -e '' -e 'a\' -e '' -e '}'

이 경우 예약된 공간을 사용하는 것이 더 쉽고 짧습니다.

 seq 5 | sed  '3{G;H;x;}'

관련 정보