sed:N 명령이 한 줄을 읽지 않습니다.

sed:N 명령이 한 줄을 읽지 않습니다.

Nsed 명령이 한 줄도 읽지 못하는 이유는 무엇입니까 ?

# single line without \n
$ echo -en 'abc' | sed -n 'N;p'
$
# I expected 'abc'

# single line with \n
$ echo -en 'abc\n' | sed -n 'N;p'
$
# I expected 'abc'

# two lines
$ echo -en 'abc\n_' | sed -n 'N;p'
abc
_$ 
# works as expected

답변1

후행 개행 문자가 없는 줄은 줄이 아닙니다. 일부 sed구현에서는 이를 삭제하고 일부는 수락하며 일부 구현에서는 누락된 줄바꿈을 추가할 수 있습니다.

존재하다:

echo -en 'abc\n' | sed -n 'N;p'

abcsed는 패턴 공간에서 시작합니다. 그런 다음 지정된 명령을 계속 실행합니다. 첫 번째 N는 패턴 공간에 다음 줄을 추가하는 것입니다. 다음 줄이 없어 sed이탈이 발생함POSIX에 의해 지정됨그리고 기록대로.

관련 정보