sed -e '/^Password:/,/^[^ ]/{s/Password: .*/Password: */; /^ /d;}'
これは、Password:
空白以外で始まる行と次の行の間の行を探し、中括弧の間のコマンドをそれらの行に適用します。行については、質問が求めているようにPassword:
、入力を次のように置き換えます。Password: *
必要に応じて、より複雑な置換を行うことができます。もう 1 つのコマンドは、空白で始まる行 (パスワードの継続行) を削除します。範囲の終了行は変更されません。
$ sed -e '/^Password:/,/^[^ ]/{s/Password: .*/Password: */; /^ /d;}' <<'EOF'
> Profile: id=standard,ou=groups,ou=access,ou=data,o=abc,c=au
> Password: 3412783561b897b8979878c9789798d89789789
> d49a5e3b8ff353844454
> id: account 1 0
> EOF
Profile: id=standard,ou=groups,ou=access,ou=data,o=abc,c=au
Password: *
id: account 1 0
$
これは、Solaris を使用するかなりのチャンスだと思いますsed
。うまくいかない場合は、アクションを複数の行に分割します。
sed -e '/^Password:/,/^[^ ]/{
s/Password: .*/Password: */
/^ /d
}' ...
それは間違いなくうまくいくはずです。