番号付きタイトル

番号付きタイトル

スペースを階層番号リストに変換する必要がありますが、これを達成するのは困難です。

これが私が求めているものです:

入力(表示):

    Project #1
         Subproject
              Task
    Project #2
         Subproject
              Task
              Task

入力(生):

\tProject #1
\t\tSubproject
\t\t\tTask
\tProject #2
\t\tSubproject
\t\t\tTask
\t\t\tTask

希望の出力:

1: Project #1
     1.1: Subproject
          1.1.1: Task
2: Project #2
     2.1: Subproject
          2.1.1: Task
          2.1.2: Task

ベストアンサー1

Perlが救出に来る!

perl -pe 'if (s/^\t(\t*)//) {
              $n[ length $1 ]++;
              splice @n, 1 + length $1;
          }
          print $1, join(".", @n), ": " ' -- file
  • s/^\t(\t+)//前のタブを削除してキャプチャします(最初のタブを除く)$1
  • 配列は@n数値を格納するために使用されます。現在の深さに対応する数字は増加し++、残りの数字は削除されます(新しい、あまりネストされていないセクションを開始した場合)。

おすすめ記事