我正在尝试使用sed替换单行。
示例:
space_left_action = EMAIL
admin_space_left_action = SUSPEND
我试过这个命令:
sed -i '/space_left_action*/c\space_left_action = SYSLOG' /etc/audit/auditd.conf
结果:
space_left_action = SYSLOG
space_left_action = SYSLOG
我不想替换admin_space_left_action行,但仍然具有灵活性,如果有人用不同的sed更改space_left_action值仍然会替换该行。
答案 0 :(得分:1)
使用'^'检查行的开头
sed -i '/^space_left_action*/c\space_left_action = SYSLOG' /etc/audit/auditd.conf
答案 1 :(得分:0)
你也可以尝试这个
sed -i '/[^_]space_left_action*/c\space_left_action = SYSLOG' /etc/audit/auditd.conf
答案 2 :(得分:0)
awk
版本
awk '/^space_left_action/ {$3="SYSLOG"}1' /etc/audit/auditd.conf
space_left_action = SYSLOG
admin_space_left_action = SUSPEND