![Vim:将所有以字符串开头的行替换为行](https://linux22.com/image/81048/Vim%EF%BC%9A%E5%B0%86%E6%89%80%E6%9C%89%E4%BB%A5%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%BC%80%E5%A4%B4%E7%9A%84%E8%A1%8C%E6%9B%BF%E6%8D%A2%E4%B8%BA%E8%A1%8C.png)
关于这段文字
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
那样。