如何使用 sed 在文件开头插入一行?

Kia*_*tar 4 sed

我试图将包含这些字符的行插入~o到文件的开头。我正在使用:sed -i '' "1s/^/~o \n/" macros但是换行符选项不起作用。我应该如何改变它?谢谢

hek*_*mgl 6

您可以使用插入命令i

sed '1i\TEXT TO INSERT' file
Run Code Online (Sandbox Code Playgroud)

解释:

1     Addresses the first line
i     The insert command inserts the following
      text before(!) line 1
\     Required after i (in POSIX compatible versions of sed)
TEXT  The text to insert
Run Code Online (Sandbox Code Playgroud)

例子:

sed '1i\Hello' <<< 'world!'
Run Code Online (Sandbox Code Playgroud)

输出:

Hello
world!
Run Code Online (Sandbox Code Playgroud)

顺便说一句,i甚至可以使用换行符:

sed '1i\Hello\n' <<< 'world'
Run Code Online (Sandbox Code Playgroud)

输出:

Hello

world!
Run Code Online (Sandbox Code Playgroud)