通过 bash 替换配置文件中的值

Replace value in a configuration file via bash

我必须通过 bash 脚本替换 rhel 配置文件中包含的数值:

auth        required      pam_tally2.so onerr=fail deny=5 even_deny_root unlock_time=600 root_unlock_time=600

只要这些值不相同,我就无法匹配模式。如何查找和替换(例如)unlock_time=600unlock_time=1000?

解决方法如下:

sed -rni 's/^(.*\bunlock_time\b=)([0-9]+)(.*)$/<PARAM_VALUE>/p' <CONFIG_FILE>

使用sed

$ sed 's/\(\<unlock_time=\)[^ ]*/000/' input_file
auth        required      pam_tally2.so onerr=fail deny=5 even_deny_root unlock_time=1000 root_unlock_time=600