web-dev-qa-db-ja.com

空白以外のすべての行の行番号?

ここでちょっと面白がって、私は 前提条件 に合格しようとしています ジョージア工科大学による高性能コンピュータアーキテクチャのUdacityコース 私の人生のために私はできます彼らが何を望んでいるのかわからない、

質問は読む、

空白以外の行の行番号が表示された状態でファイルの内容を一覧表示するには、オプションを指定してコマンドを使用します:________ ___filename。

nlを試しました。それはうまくいきませんでした。これまでで最も奇妙な質問。

Question

1
Evan Carroll

どうやら、catにもそのオプションがあります。

-b--number-nonblank空でない出力行の数、-nをオーバーライドします

だから今私はcat -bnlは同じだと思います。喜び!

$ 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);
1
Evan Carroll

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
5
muru

「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
0
keithchristian