sed 使用扩展正则式的分组功能进行替换

以下命令使用sed的扩展正则式的分组功能进行替换,-r参数启用扩展正则式支持

sed  -r -i 's/(PASS_MAX_DAYS)\s+([0-9]+)/\1 90/'  /etc/login.defs

这条命令将/etc/login.defs文件的行

PASS_MAX_DAYS   99999

替换为

PASS_MAX_DAYS 90

以下正则式支持分组功能,()表示一个分组

(PASS_MAX_DAYS)\s+([0-9]+)

将PASS_MAX_DAYS放在分组1中,[0-9]+匹配任意多个数字,放在分组2中,两个分组中间还有\s+,\s+表示任意多个空白字符,\1引用分组1,\2引用分组2

猜你喜欢

转载自blog.51cto.com/penguintux/2431655