sed:插入包含路径分隔符的字符串

sed:插入包含路径分隔符的字符串

我想使用 sed 在文件第 13 行插入一行。这是我尝试的:

sed -i '13/home/me/dostuff.py &' /etc/rc.local

我收到此错误:

sed: -e expression #1, char 3: unknown command : `/'

如何使用 sed 在给定行插入包含斜杠的文本?

答案1

使用

sed -i '13i\/home/me/dostuff.py &' /etc/rc.local

插入它(即,将其放在第 13 行之前);或者

sed -i '13a\/home/me/dostuff.py &' /etc/rc.local

A将其附加到行尾(即,将其放在当前第 13 行之后)。


i请注意,正斜杠在 sed和命令中并不特殊a- 仅在正则表达式匹配中才特殊,例如/pattern/ds/pattern/replacement/(尽管在那里,它们也可以被其他分隔符替换,例如\%pattern%ds#pattern#replacement#- 至少在 GNU sed 中)。

相关内容