지정된 줄에서 시작하는 텍스트 표시

지정된 줄에서 시작하는 텍스트 표시

나는 그것을 확인하고 싶다/etc/passwd

    $ cat -n /etc/passwd
         1  ##
         2  # User Database
         3  # 
         4  # Note that this file is consulted directly only when the system is running
         5  # in single-user mode.  At other times this information is provided by
         6  # Open Directory.
         7  #
         8  # See the opendirectoryd(8) man page for additional information about
         9  # Open Directory.
        10  ##
        11  nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false

보시다시피 처음 10줄은 주석 처리되어 있으며 결과적으로 다음과 같은 명령이 필요합니다.

    $ cat -n [11:] /etc/passwd
     nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false     
     root:*:0:0:System Administrator:/var/root:/bin/sh
     daemon:*:1:1:System Services:/var/root:/usr/bin/false
     _uucp:*:4:4:Unix to Unix Copy Protocol:/var/spool/uucp:/usr/sbin/uucico

이것을 달성하는 방법은 무엇입니까?

답변1

파일의 주석 처리된 줄을 계산하지 않고 무시하려면 다음을 수행해야 합니다.

grep -n -v ^# /etc/passwd

grep에는 -n줄 번호를 매기는 cat과 동일한 옵션이 있습니다. (출력 형식은 약간 다르지만 grep은 줄 번호와 내용 사이에 콜론을 추가하고 숫자도 채우지 않습니다.)

-v옵션은 grep에게 실행된 라인을 인쇄하도록 지시합니다.아니요정규식을 일치시킵니다.

그리고 정규식은 ^#줄 시작 부분의 텍스트만 일치합니다.#

반대로, 처음 10개 행을 항상 건너뛰기를 원하는 경우에는 tail +11이 작업을 수행해야 합니다. 파이프를 통해 연결할 수 있습니다 cat -n.

cat -n /etc/passwd | tail +11

tail자세한 내용 과 보다 구체적인 옵션은 매뉴얼 페이지를 참조하십시오 -n(아래 그림과 같이 생략 가능).

관련 정보