yamlヘッダーの後にマークダウンサブタイトルが続く一連のファイルがあり、次のようになります。
最小限の入力ファイルの例:
---
layout: post
tags:
- might
- be
- variable
- number
- of
- these
category: ecology
---
my (h2 size) title
------------------
some text
possible other titles we don't want
-----------------------------------
more text more text
私が示したように、YAMLヘッダーのサイズと最初のサブタイトルが表示される行はさまざまであるため、変更の行番号を事前に知ることは期待できません。最初のタイトルを特定したいと思います(これは、終了後の最初の非空白テキストでもあります---
。次に、そのテキストをYAMLヘッダーに書き込み、取得したタイルを本文から削除します。残りのテキストはそのまま残ります:
ターゲット出力ファイル
---
layout: post
tags:
- might
- be
- variable
- number
- of
- these
categories: ecology
title: my (h2 size) title
---
some text
possible other titles we don't want
-----------------------------------
more text more text
このような作業はsed/awkなどにとって妥当な作業のようですが、これらのツールの使用法は非常に初歩的なものであり、これを理解することはできませんでした。
単語間を検索できるようですsed 'word1/,/word2/p
が、これを変換して、 (ダッシュが3つ以上ある行)の2番目の出現^---$
と最初の出現の間を検索する方法がわかりません。^----+-$
次に、余分な空白行を削除して、上記のyamlマターに貼り付ける方法。
おそらく、非常に多くのステップがある場合、perlはsedよりも良い選択ですが、私が慣れていないものです。ヒントやアドバイスをありがとう。