答え1
YFM
(YAML front matter
)には慣れていませんが、このページによるとそれファイルの最初のコンテンツでなければならず、3つの点線の間に設定された有効なYAML形式でなければなりません。。これは、ファイルが常に存在する---
場合から始まるため、YFM
以下を実行できることを意味します。
sed -n '1{/^---$/!q};1,/^---$/{/^Title: \|^Place: /d};p' infile
つまり、最初の行がuitと一致しない---
q
場合、2番目のタグが2番目の式を変更すると、これらのパターンに一致するすべての行が削除されます(最初の行と次の行の一致の間にd
表示される場合)。ただし、リテラルポイントと一致するように注意してください。たとえば、一致させるには、または)を使用してエスケープする必要があります。1
---
...
sed
...
\.\.\.
\.\{3\}
sed -n '1{/^---$/!q};1,/^\.\.\.$/{/^Title: \|^Place: /d};p' infile
答え2
heemaylのsedソリューションに加えて、grepオプションがあります。
grep -Ev '^Title:|^Place:' file.txt
説明する:
- grep -v は Title: または Place: を含む行を無視します。
- grep -E は 2 つの用語を積み重ねます。
- ^は、パターンが行の先頭になければならないことを意味します。