ちょっと笑いますね。パスしようとしています。前提条件入力する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
行番号の後には2つのアスタリスクがあります。
$ 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