如何在 sed 中使用反斜杠?

如何在 sed 中使用反斜杠?

我正在尝试通过 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,所以当它们出现在您要查找的文本中时,您需要使用前面的 对其进行转义\

相关内容