空でないすべての行の行番号は何ですか?

空でないすべての行の行番号は何ですか?

ちょっと笑いますね。パスしようとしています。前提条件入力する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

関連情報