AWKレコード区切り文字を使用する方法は?

AWKレコード区切り文字を使用する方法は?

入力は次のとおりです。

*           true, false, yes, no, always, never.
*
*******************************************************************************
default:
    su = true
    ...
    maxexpired = -1
    umask = 077
    expires = 0

someuser:
    su = true
    ...

次の出力が必要です。

077

したがって、デフォルトのユーザーの場合は、「umask = 077」行だけが必要です。これは /etc/security/user の一部です。 "grep -p" は "default:" の前に空行がないため動作しません。 awkレコード区切り文字を検索しましたが、実行方法が見つかりませんでした。どうすればいいですか? ("..."は他の属性にすぎません..)

更新:入力テンプレートが更新されました。ありがとうございます。

ベストアンサー1

これは機能します(デフォルトのユーザーの値のみを取得するようにコードを編集します)。

awk -F'= ' '/default:/,/umask =/{ if(/umask =/){ print $2 } }' /etc/security/user

-F入力フィールドの区切り文字を設定します。このコードはumask =その中の行と一致し、2番目のフィールドを印刷します。

おすすめ記事