Gnu sed의 "i text"와 "i\...." 명령 사이에 차이점이 있습니까? [복사]

Gnu sed의 "i text"와 "i\...." 명령 사이에 차이점이 있습니까? [복사]

다음은 Gnu sed 문서에서 발췌한 내용입니다.https://www.gnu.org/software/sed/manual/sed.html

i text
insert text before a line. This is a GNU extension to the
standard i command - see below for details.

i\
text
Immediately output the lines of text which follow this command.

이 두 문법의 표현은 매우 다릅니다. 과거에는 구문만 다르고 동작은 똑같다고 생각했습니다. 많은 실험을 했는데 모든 테스트에서 동일한 결과가 나왔습니다. 확인하고 싶습니다. 이 두 구문 사이에 차이점이 있습니까? 미리 감사드립니다.

답변1

이 구문은 i text명령에 대한 POSIX 표준 구문의 확장으로, 편의를 위해 제공됩니다(GNU 확장의 경우 흔히 발생함).ised

표준 i명령좋다

i\
text

POSIX는 이를 간결하게 문서화합니다.

표준 출력에 텍스트를 씁니다.

GNU는 및 명령에 대해 sed동일한 구문 편의성을 제공합니다 . 다음은 이 명령에 대한 문서(GNU 버전 4.2.2)에서 가져온 것입니다.aciinfo sedased

GNU 확장으로서 a개행 문자 사이에 일련의 공백 이외의 다른 것이 있는 경우 \그 뒤의 첫 번째 공백이 아닌 문자로 시작하는 텍스트 줄은 aTEXT 블록의 첫 번째 줄로 간주됩니다. (이것은 한 줄 추가 스크립트 작성을 단순화할 수 있습니다.) 이 확장은 i및 명령 과 함께 사용할 수도 있습니다 c.

즉, 이 두 명령은

i text

그리고

i\
text

GNU에서도 마찬가지입니다 sed.

관련 정보