0

sed が特定の行に番号を付けながら行カウント作業を実行できるかどうかを知りたいのですが、ファイルがあるとします

  Some question 
         some answer
         another answer
  Another question
         another answer
         other answer

それを次のように変換するコマンドが必要です:望ましい出力

  1_ Some question 
         a_ some answer
         b_ another answer
  2_ Another question
         a_ another answer
         b_ other answer

それはsedで可能ですか?そうでない場合、解決策を bash スクリプト化せずにどのように行うことができますか?

4

2 に答える 2

4

で試してみるとよいでしょう。withespace 文字で始まらない行に番号を付けたいとします。

awk '$0 !~ /^[[:blank:]]/ { print ++i "_", $0; next } { print }' infile

次の結果が得られます。

1_ Some question
         some answer
         another answer
2_ Another question
         another answer
         other answer
于 2013-10-24T22:31:57.700 に答える
4

++Perl には、文字で動作する便利な機能があります。

perl -lpe '
    /^\S/ and do {$inner_counter="a"; s/^/ ++${outer_counter} . "_ "/e}; 
    /^\s/ and s/^\s+/$& . ${inner_counter}++ . "_ "/e
' file
1_ Some question

     a_ some answer

     b_ another answer

2_ Another question

     a_ another answer

     b_ other answer
于 2013-10-24T22:33:52.013 に答える