ここでちょっと面白がって、私は 前提条件 に合格しようとしています ジョージア工科大学による高性能コンピュータアーキテクチャのUdacityコース 私の人生のために私はできます彼らが何を望んでいるのかわからない、
質問は読む、
空白以外の行の行番号が表示された状態でファイルの内容を一覧表示するには、オプションを指定してコマンドを使用します:________ ___filename。
nl
を試しました。それはうまくいきませんでした。これまでで最も奇妙な質問。
どうやら、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);
cat
の番号付けはPOSIXではありませんが、nl
はPOSIXであり、POSIXは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
「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