N
sed 명령이 한 줄도 읽지 못하는 이유는 무엇입니까 ?
# 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'
abc
sed는 패턴 공간에서 시작합니다. 그런 다음 지정된 명령을 계속 실행합니다. 첫 번째 N
는 패턴 공간에 다음 줄을 추가하는 것입니다. 다음 줄이 없어 sed
이탈이 발생함POSIX에 의해 지정됨그리고 기록대로.