비어 있지 않은 모든 줄의 줄 번호는 무엇입니까?

비어 있지 않은 모든 줄의 줄 번호는 무엇입니까?

좀 웃기네요. 패스하려고 합니다.전제 조건입력하다Georgia Tech의 Udacity 고성능 컴퓨터 아키텍처 과정나는 평생 동안 그들이 원하는 것이 무엇인지 알아낼 수 없습니다.

질문은 다음과 같습니다.

파일의 내용을 나열하고 비어 있지 않은 줄의 줄 번호를 표시하려면 ____ ___ filename 옵션과 함께 명령을 사용하십시오.

나는 노력했다 nl. 작동하지 않습니다. 가장 이상한 질문입니다.

질문

답변1

cat번호 매기기는 POSIX는 아니지만 POSIX 는 사용되는 번호 매기기 스타일 nl도 정의합니다 .nl

−b type  Specify which logical page  body  lines  shall  be  numbered.
         Recognized types and their meaning are:

         a       Number all lines.

         t       Number only non-empty lines.

         n       No line numbering.

         pstring Number  only  lines  that  contain  the basic regular
                 expression specified in string.

         The default type for logical page body shall be t (text lines
         numbered).

따라서 기본값이더라도 다음과 같습니다.

nl -bt filename

답변2

분명히 cat이런 옵션도 있는 것 같은데,

-b,--number-nonblank포함된 비어 있지 않은 출력 라인 수-n

그래서 지금 나는 추측 cat -b하고 nl같다. 기쁨!

$ cat -b ./foo.py 
     1  a = 5
     2  a = a + 1

     3  print "foobarbaz" + str(a);

$ nl ./foo.py 
     1  a = 5
     2  a = a + 1

     3  print "foobarbaz" + str(a);

답변3

"nl"은 "cat -b"보다 더 많은 형식 지정 옵션을 제공합니다.

마침표 "."와 같은 구두점 또는 기타 문자가 줄 번호 뒤에 올 수 있으며 "-s" 옵션을 사용하여 다른 수의 공백을 추가할 수도 있습니다.

비어 있지 않은 숫자 줄만:

$ echo -e "one\ntwo\nthree\n\n\nfour\n\nfive\nsix\nseven\n\neight\n\n\n\nnine\nten\n"|nl -bt -s\.\  -
 1. one
 2. two
 3. three


 4. four

 5. five
 6. six
 7. seven

 8. eight



 9. nine
10. ten

줄 번호 및 줄 사이의 추가 공백:

$ echo -e "one\ntwo\nthree\n\n\nfour\n\nfive\nsix\nseven\n\neight\n\n\n\nnine\nten\n"|nl -bt -s\.\ \ \ \ \ \  -
 1.      one
 2.      two
 3.      three


 4.      four

 5.      five
 6.      six
 7.      seven

 8.      eight



 9.      nine
10.      ten

줄 번호 뒤에는 두 개의 별표가 있습니다.

$ echo -e "one\ntwo\nthree\n\n\nfour\n\nfive\nsix\n\n"|nl -bt -s**\ \ \ \ \ \ \  -
 1**       one
 2**       two
 3**       three


 4**       four

 5**       five
 6**       six

괄호와 같은 특정 문자는 백슬래시를 사용하여 셸에서 이스케이프해야 합니다.

$ echo -e "one\ntwo\nthree\n\n\nfour\n\nfive\nsix\n\n"|nl -bt -s\(\(\ \ \ \ \ \ \  -
 1((       one
 2((       two
 3((       three


 4((       four

 5((       five
 6((       six

관련 정보