1. 현재 pattern space 에 있는 내용을 프린트합니다.
p
명령은 주로 -n
옵션과 함께 사용됩니다.
-n
옵션을 사용하지 않은 상태에서 p
명령을 사용하면 p
명령에 의해 한번,
명령 사이클이 끝날때 sed 에 의해 한번, 두번 pattern space 의 내용이 출력됩니다.
$ seq 111 111 555 | sed '3p'
111
222
333
333 # '-n' 옵션을 사용하지 않은 상태이므로 3번 라인이 두번 출력
444
555
라인이 pattern space 에 입,출력 되는 과정
새로운 명령 사이클이 시작되거나 아니면 n
, N
명령에 의해
입력 스트림으로 부터 라인이 하나 pattern space 에 입력되면 위 그림에서 1번 상태가 됩니다.
이때 한가지 주목해야 될 점은 newline 이 pattern space 밖으로 제외된다는 점입니다.
그러므로 수정 명령이 적용될때 newline 은 포함되지 않습니다.
사용자가 입력한 명령들이 pattern space 에 적용되고 명령 사이클이 끝나거나, 아니면
사이클 중에 p
명령을 실행했을 경우 그림 2번 에서와 같이 현재 pattern space 에 있는 내용과
제외되었던 newline 더해져서 출력됩니다.
위의 경우는 입력되는 라인에 newline 이 포함되는 일반적인 경우에 해당합니다.
가령 bash 에서 echo -n 111
명령을 사용하게 되면 출력에 newline 이 포함되지 않게 되는데요.
이때는 sed 명령의 출력에도 newline 이 포함되지 않게 되므로 개행이 되지 않습니다.
$ echo 111 | sed ''
111 # 입력되는 라인에 newline 이 포함되는 경우
mug896@EliteBook [pts/7] ~/tmp
$ echo -n 111 | sed '' # echo 명령에 -n 옵션을 사용
111mug896@EliteBook [pts/7] ~/tmp # 입력되는 라인에 newline 이 없으므로
$ # 출력때 개행이 되지 않는다.
명령 사이클이 끝나거나, p
명령에 의해서 pattern space 에 있는 내용이 프린트될 때는
현재 pattern space 에 있는 전체 내용이 프린트됩니다.
1. pattern space 에서 첫번째 라인만 프린트합니다.
pattern space 에 라인이 하나뿐이 없으면 p
명령과 차이가 없습니다.
이 명령은 주로 multiple lines 를 다룰 때 pattern space 에서 첫 번째 라인을 삭제하는 D
명령과 함께 사용됩니다.