좀 웃기네요. 패스하려고 합니다.전제 조건입력하다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