2番目のパターン発生をsedの新しいファイルにコピーする

2番目のパターン発生をsedの新しいファイルにコピーする

2つの証明書を含む証明書ファイルがあります。で始まり、---BEGIN CERTIFICATE--で終わります---END CERTIFICATE----

例:

---BEGIN CERTIFICATE--
blah1 blah1
---END CERTIFICATE----

---BEGIN CERTIFICATE--
blah2 blah2
---END CERTIFICATE----

2番目のグループを別のファイルにコピーしたいです。

次のコマンドを試しましたが、sed証明書がpublic.cer

sed -n '/BEGIN CERTIFICATE/,/END CERTIFICATE/w public.cer' intermediate.cer

2番目の証明書のみを新しいファイルにコピーするにはどうすればよいですか?

ベストアンサー1

そしてawk 範囲モード:

awk '/BEGIN CERTIFICATE/ && ++c==2,/END CERTIFICATE/' intermediate.cer > public.cer

文書の内容public.cer:

---BEGIN CERTIFICATE--
blah2 blah2
---END CERTIFICATE----

範囲モード形式でコンマで区切られた2つのパターンで構成されていますbegpat, endpat。連続した入力レコードの範囲を一致させるために使用されます。最初のパターンは、begpat範囲の開始位置を制御するときにendpatパターンの終了位置も制御します。カウンタは、c一致する各行でインクリメントされ確認されます/BEGIN_CERTIFICATE/

おすすめ記事