特定のパターンに従い、文字で始まるすべての行を見つけます。

特定のパターンに従い、文字で始まるすべての行を見つけます。

したがって、次のように、_postsタイトルにメタデータYAMLを含むJekyll投稿がたくさんあります。categories

---
excerpt: "I am an excerpt"
categories:
- tips
- programming
- howto
- another-tag
layout: blog
title: I am a Page Title
created: 1267026549
permalink: blog/27-05-2017/clean-url-goes-here
---

categoriesだから、行を探してn()の後に行を表示するためにgrepする方法を知っています...しかし、明らかに各投稿の番号が異なるので、で始まる次の行をすべて-An表示させる方法はありますか?-おそらくすべての行はlayout

ベストアンサー1

推奨されるテキスト処理ツールはですawk

この試み:

awk '/categories/,/layout/ { if (!/layout/) print }' your_file

このコマンドは、行自体がなくなるcategoriesまですべてを印刷します。layout

出力:

categories:
- tips
- programming
- howto
- another-tag

categoriesとの間にのみ項目が必要な場合は、次のように条件layoutに2番目のパターンを追加できますif

awk '/categories/,/layout/ { if (!/layout/ && !/categories/) print }' your_file

その後、出力は次のようになります。

- tips
- programming
- howto
- another-tag

おすすめ記事