bash
처음부터 이런 표정 라인이 있었어요 . 이것이 무엇을 의미하는지 이해하지 못합니다.
매뉴얼의 의미 sed
와 옵션은 알고 있지만 -n
마지막 부분의 의미는 이해하지 못합니다.
sed -n "n;p"
답변1
n
현재 줄 처리를 건너뛰고 다음 줄을 읽습니다. 보다 정확하게는 이 명령은 sed의 현재 작업 버퍼(정확한 용어인 "패턴 공간")를 다음 줄로 대체합니다. p
인쇄하세요.
암시적 인쇄가 억제 되므로 -n
결과적으로 한 줄씩 걸러 인쇄됩니다.
또한보십시오sed 매뉴얼.
답변2
이것은 쉘과는 아무런 관련이 없으며 bash
단지 실행을 위해 사용하는 것뿐입니다 sed
.
n
의 edit 명령은 sed
현재 버퍼를 출력합니다. 단, 기본 출력이 꺼져 있지 않으면 -n
(표시된 예제 명령에서와 같이) 다음 행이 버퍼로 읽혀집니다.
edit 명령은 사용 여부에 p
관계없이 현재 버퍼를 출력합니다 .-n
그 결과 입력의 첫 번째 줄부터 시작하여 두 번째 줄이 모두 삭제되고 나머지 줄이 인쇄됩니다.
sed -n '2~2p'
효과는 GNU를 사용 하거나 사용할 때 와 동일합니다 sed '2~2!d'
. 이는 "두 번째 행부터 시작하는 모든 두 번째 행"을 의미하며 "첫 번째 행부터 시작하는 모든 두 번째 행"을 의미합니다. 주소 범위 수정자는 GNU 확장입니다.sed '1~2d'
sed
2~2
1~2
~
sed
awk
를 사용하면 기본적으로 는 현재 입력 파일의 줄 번호이고 는 범용 모듈러스 연산자인 것과 동일한 효과를 얻을 수 있습니다 .awk '(FNR % 2) == 0'
FNR
%