gpt4 book ai didi

regex - Solaris 11 中的字符串替换

转载 作者:行者123 更新时间:2023-12-01 15:27:17 26 4
gpt4 key购买 nike

我有以下输出:

Profile: id=standard,ou=groups,ou=access,ou=data,o=abc,c=au
Password: 3412783561b897b8979878c9789798d89789789
d49a5e3b8ff353844454
id: account 1 0

我想用 Password: ******* 替换 Password 字段

如何使用 sed 为我做这件事?我能够替换第一个字符串,但以下字符串仍然存在:

sed 's/Password: .*/Password: ********/g'

最佳答案

sed -e '/^Password:/,/^[^ ]/{s/Password: .*/Password: */; /^ /d;}'

这将查找以 Password: 开头的行和以非空白开头的下一行之间的行,并将大括号之间的命令应用于这些行。对于 Password: 行,它用 Password: * 替换输入,因为问题似乎要求;如果你愿意,你可以做更复杂的替换。另一个命令删除以空白开头的行——密码的续行。范围结束线保持不变。

$ 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
}' ...

这绝对有效。

关于regex - Solaris 11 中的字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17204485/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com