端末から分割された部分印刷

端末から分割された部分印刷

次の構造のファイルがあります。現在のセクション全体を印刷したいです。入力は他のタイトルまたはキーワードです。

## DN [TITLE] KEYWORD,KEYWORD
## text line
## another text line
## DN [TITLE] ends here

この記事を検討してください

some text

## DN [Opcon] bash,recources
## text line
## another text line
## DN [Opcon] ends here

more text

ユーザーがOpconbashまたはを指定すると、recourcesこのセクションが端末に印刷されます。

出力を受け取る

## DN [Opcon] bash,recources
## text line
## another text line
## DN [Opcon] ends here

検索パターンのために、以下のptnパターンマッチングを構築しました## DN [TITLE] KEYWORD,KEYWORD

  dpn='[[:space:]]*([#;!]+|@c|//)[[:space:]]DN[[:space:]]\[.*\]'
  kpn='[[:space:]][^,]+(,[^,]+)*'

  ptn="^($dpn)($kpn)?$"

事前に試みた。awk

dn_ere='^[[:space:]]*([#;!]+|@c|//)[[:space:]]DN[[:space:]]\[.*\]'

beg_ere="${dn_ere} ${keyword}$"
end_ere="${dn_ere} ends here$"

awk -v begpn="$beg_ere" -v endpn="$end_ere" \
  '$0 ~ begpn { insc=1; next }
   $0 ~ endpn { insc=0; print "" }
   insc { print }' "$efile"

最初のキーワードに一致するのか、2番目のキーワードに一致するのかわからないため、マッチングに問題がありますkeywordbeg_ere

ベストアンサー1

おすすめ記事