sed 印刷タイトル

sed 印刷タイトル

番号付きヘッダーを取得し、数字なしでツリー構造に書き込む sed スクリプトを作成しようとしています。

入力は次のとおりです。

1. Text1
1.1 Text2
1.1.1 Text3
1.1.1.1 Text4
1.1.1.1.1 Text5
2. Text6
2.1 Text7

これは表現空間を持つ望ましい出力です.

Text1
.Text2
..Text3
...Text4
....Text5
Text6
.Text7

ベストアンサー1

すべてのUnixシステムのすべてのシェルでawkを使用してください。

$ awk '{sub(/\.$/,"",$1); gsub(/[^.]/,"",$1); sub(/ /,"")}1' file
Text1
.Text2
..Text3
...Text4
....Text5
Text6
.Text7

質問で数値型で始まる行だけを修正して印刷すると、次のようになります(テストされていません)。

awk '/^([0-9]\.)+[0-9]* /{sub(/\.$/,"",$1); gsub(/[^.]/,"",$1); sub(/ /,""); print}' file

上記のコードは、「テキスト」のすべての連続した空白チェーンを単一の空白文字に変更します。これが問題になる場合は、これを行わないように簡単に修正できますが、これらのユースケースに対処するには、「テキスト」の入出力例を提供する必要があります。

おすすめ記事