在这段文字上
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
...
Run Code Online (Sandbox Code Playgroud)
我想替换所有以硬件 mac 开头的行
hardware mac 00:00:00:00:00:00
Run Code Online (Sandbox Code Playgroud)
我试过了
sed s/^hardware mac/hardware mac 00:00:00:00:00:00/gc
Run Code Online (Sandbox Code Playgroud)
并给出错误
还有经典的 vim 命令
%s:/^hardware mac/hardware mac 00:00:00:00:00:00/gc
Run Code Online (Sandbox Code Playgroud)
但只更改字符串硬件 mac,而不会更改数字。如何用我的字符串替换以硬件mac开头的字符串?
Kir*_*ira 15
您几乎做对了,只是忘记匹配该行的其余部分(在vim
):
:%s/^hardware mac.*/hardware mac 00:00:00:00:00:00/gc
Run Code Online (Sandbox Code Playgroud)
gc
如果您确定自己在做什么,可以在最后删除选项,这g
可能是不必要的,因为每行匹配的次数不会超过一次。
有了sed
它是同样的事情:
sed -i 's/^hardware mac.*/hardware mac 00:00:00:00:00:00/' filename
Run Code Online (Sandbox Code Playgroud)
请注意,sed
的替换命令s
不接受c
(确认)标志,就像vim
。