sed 표현식의 의미 쿼리

sed 표현식의 의미 쿼리

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'sed2~21~2~sed

awk를 사용하면 기본적으로 는 현재 입력 파일의 줄 번호이고 는 범용 모듈러스 연산자인 것과 동일한 효과를 얻을 수 있습니다 .awk '(FNR % 2) == 0'FNR%

관련 정보