0

我正在尝试使用 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 行,但仍然具有灵活性,如果有人用不同的东西更改 space_left_action 值,sed 仍然会替换该行。

4

3 回答 3

1

使用 '^' 检查行首

sed -i '/^space_left_action*/c\space_left_action = SYSLOG' /etc/audit/auditd.conf
于 2013-10-10T04:51:27.173 回答
0

你也可以试试这个

sed -i '/[^_]space_left_action*/c\space_left_action = SYSLOG' /etc/audit/auditd.conf
于 2013-10-10T05:00:41.137 回答
0

一个awk版本

awk '/^space_left_action/ {$3="SYSLOG"}1' /etc/audit/auditd.conf
space_left_action = SYSLOG
admin_space_left_action = SUSPEND
于 2013-10-10T05:14:00.200 回答