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

发布于 2025-01-11 05:03:36 字数 280 浏览 0 评论 0原文

我必须通过 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

I have to replace the numeric values contained into a rhel configuration file through a bash script:

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

As long as these values are not the same, I'm unable to match a pattern. How can I find and replace (for example) unlock_time=600 with unlock_time=1000?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

惯饮孤独 2025-01-18 05:03:36

使用 sed

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

Using sed

$ sed 's/\(\<unlock_time=\)[^ ]*/\11000/' input_file
auth        required      pam_tally2.so onerr=fail deny=5 even_deny_root unlock_time=1000 root_unlock_time=600
请你别敷衍 2025-01-18 05:03:36

这是解决方案:

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

Here is the solution:

sed -rni 's/^(.*\bunlock_time\b=)([0-9]+)(.*)$/\1<PARAM_VALUE>\3/p' <CONFIG_FILE>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文