Vim:将所有以字符串开头的行替换为行

Vim:将所有以字符串开头的行替换为行

关于这段文字

hardware mac 33:33:333:33:33
hardware mac 33:13:333:33:33
hardware mac 33:23:333:23:34
hardware mac 33:033:133:33:35
...

我想替换所有以 hardware mac 开头的行

hardware mac 00:00:00:00:00:00

我努力了

sed s/^hardware mac/hardware mac 00:00:00:00:00:00/gc

并给出错误

也是经典的vim命令

%s:/^hardware mac/hardware mac 00:00:00:00:00:00/gc

但仅更改字符串硬件 mac,保持数字不变。如何用我的字符串替换以硬件 mac 开头的字符串?

答案1

你几乎做对了,你只是忘记匹配该行的其余部分(在vim):

:%s/^hardware mac.*/hardware mac 00:00:00:00:00:00/gc

gc如果您确定自己在做什么,则可以在最后删除这些选项,g这可能是不必要的,因为每行不会匹配多次。

sed它是同一件事:

sed -i 's/^hardware mac.*/hardware mac 00:00:00:00:00:00/' filename

请注意,sed的替换命令s不接受c(确认)标志,就像vim那样。

相关内容