我想替换
x.y.z.zz=/a/b/c/d/
与
x.y.z.zz=/a/b/e/d/
我事先知道
x.y.z.zz
。我也知道行号。我试过了
sed "11s/.*/x.y.z.zz=\/a\/b\/e\/d\/" filename
但这给了错误。有没有更好的方法直接搜索和替换字符串?
最佳答案
sed
使用sed 's/pattern/replacement/'
语法替换。就您而言,您缺少最后一个/
。因此,通过说这将起作用:
sed '11s/.*/x.y.z.zz=\/a\/b\/e\/d\//' file
^
但是,使用另一个定界符可能会更干净,因此语法更加清晰。那
#
呢? (也可以是~
,_
等):sed '11s#.*#x.y.z.zz=/a/b/e/d/#' file
测试
$ cat a
a
x.y.z.zz=/a/b/c/d/
b
c
让我们替换第2行:
$ sed '2s#.*#x.y.z.zz=/a/b/e/d/#' a
a
x.y.z.zz=/a/b/e/d/
b
c
关于linux - 替换sed中具有正斜杠的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31565617/