我想使用 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/d
或s/pattern/replacement/
(尽管在那里,它们也可以被其他分隔符替换,例如\%pattern%d
或s#pattern#replacement#
- 至少在 GNU sed 中)。