在Linux中通过终端使用sed在文件开头插入文本

在Linux中通过终端使用sed在文件开头插入文本

可能的重复:
如何在多个文件的开头添加标签?

如何通过终端在文件开头插入文本?

答案1

sed用于编辑流——文件不是流。使用专门用于此目的的程序,例如edex。该-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

相关内容