gpt4 book ai didi

regex - sed 插入行命令 OSX

转载 作者:太空宇宙 更新时间:2023-11-04 03:42:19 28 4
gpt4 key购买 nike

我正在尝试使用 sed 将文本插入到文件的第三行,我在其他论坛上找到的语法是:

sed -i '' "3i\ text to insert" file

但是,当我使用它时,我收到错误:

sed: 1: "3i\ text to insert": extra characters after \ at the end of i command

我似乎无法弄清楚是什么导致了这个问题。我使用的是 OSX,这就是为什么我有一个空的“”作为我的扩展名。

谢谢!

最佳答案

您应该在 \ 后面直接添加一个换行符:

sed '3i\
text to insert' file

这实际上是 POSIX specification 定义的行为。 GNU sed 允许您指定要在同一行插入的文本这一事实是一个扩展。

<小时/>

如果由于某种原因您需要在 sed 命令周围使用双引号,则必须转义第一行末尾的反斜杠:

sed "3i\\
text to insert" file

这是因为 shell 首先处理双引号字符串,然后删除后跟换行符的 \:

$ echo "abc\
def"
abcdef

关于regex - sed 插入行命令 OSX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29241249/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com