![如何在 sed 中使用反斜杠?](https://linux22.com/image/185066/%E5%A6%82%E4%BD%95%E5%9C%A8%20sed%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%8F%8D%E6%96%9C%E6%9D%A0%EF%BC%9F.png)
我正在尝试通过 sed 将一些单词插入到文本文件中。
问题是某些单词具有以下字符串
-sv /
所以我想找到-sv /
然后插入-ALLOWTEXT /
下面-sv /
。
所以我用了
find . -name "main.v" -exec sed -i '/-sv //a -ALLOWTEXT \\n' "{}" \;
我收到如下错误
sed: -e expression #1, char 7: unknown command: `/'
编辑:抱歉我的错字。 -sv / 应该是 -sv \
我想找到-sv \
然后插入-ALLOWTEXT \
下面-sv \
。所以我跑
find . -name "main.v" -exec sed -i '/-sv \//a -ALLOWTEXT \//' {} \;
通过引用一个很好的答案。
然后就可以了。 ;)
答案1
对于包含文本的给定文件:
-sv /
在其下方插入包含以下文本的行:
-ALLOWTEXT /
与 GNU sed
:
$ cat input.txt
-sv /
$ sed '/-sv \//a -ALLOWTEXT /' input.txt
-sv /
-ALLOWTEXT /
因为/
s 是 的特殊字符sed
,所以当它们出现在您要查找的文本中时,您需要使用前面的 对其进行转义\
。