答案1
sed
用于编辑流——文件不是流。使用专门用于此目的的程序,例如ed
或ex
。该-i
选项sed
不仅不可移植,还会破坏文件的任何符号链接,因为它实际上会删除文件并重新创建它,这是毫无意义的。
ed -s file << EOF
0a
some text
you want to insert
goes here
.
w
EOF
答案2
在输入文件中指定仅限于第一行的行范围,然后用文本替换行开头以添加 O/P 并将其重定向到新文件
cat f1
one
sed '1,1 s/^/abcdef\n/' < f1 >f2
cat f2
abcdef
one
答案3
+1 abc 的答案,因为我发现他很好的 sed 表达。
然而瑞吉斯不想要两个文件,他想要插入他的文件中的文本;所以我改编了abc的答案:
hmontoliu@ulises:/tmp$ cat > f1
one
^C
hmontoliu@ulises:/tmp$ sed -i '1 s/^/foobar\n/' f1
hmontoliu@ulises:/tmp$ cat f1
foobar
one