通过 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=600 为 unlock_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
我必须通过 bash 脚本替换 rhel 配置文件中包含的数值:
auth required pam_tally2.so onerr=fail deny=5 even_deny_root unlock_time=600 root_unlock_time=600
只要这些值不相同,我就无法匹配模式。如何查找和替换(例如)unlock_time=600 为 unlock_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