到目前为止,我已经能够找出如何在文件的开头添加一行,但这并不完全是我想要的。我将用一个例子来说明:

文件内容

some text at the beginning

结果

<added text> some text at the beginning

它很相似,但是我不想用它创建任何新的行…

如果可能的话,我希望用sed来做这件事。


当前回答

在文件顶部添加一行:

sed -i '1iText to add\'

其他回答

Cat连接多个文件。<()将命令的输出作为文件发送。结合这两者,我们可以在文件的开头和结尾插入行,

cat <(echo "line before the file") file.txt <(echo "line after the file")
echo -n "text to insert " ;tac filename.txt| tac > newfilename.txt

第一个tac反向传输文件(最后一行先传输),因此“要插入的文本”出现在最后。第2个tac再次将其换行,因此插入的行位于开头,原始文件保持原始顺序。

嗨,用马车回:

sed -i '1s/^/your text\n/' file

如果你想在文件的开头添加一行,你需要在上面的最佳解决方案中在字符串的末尾添加\n。

最好的解决方案是添加字符串,但是使用字符串,它不会在文件的末尾添加一行。

sed -i '1s/^/your text\n/' file

注意,在OS X上,sed -i <pattern>文件失败。但是,如果您提供了一个备份扩展名sed -i old <pattern> file,那么file将在file的位置被修改。旧的是创造出来的。然后您可以删除文件。老在你的剧本里。