在文件中“添加”一行的命令是什么?

在文件中“添加”一行的命令是什么?

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

除了创建一个在标题处带有一行的临时文件,并在完成后将其移回原处之外,是否有一种标准方法可以在文件中添加一些行?

即有时你会这样做(echo #GPL license; cat $file) > tmpfile; mv tmpfile $file

编辑2

首先,我只是想看看是否有一个与常见发行版一起提供的标准命令,我想没有

编辑

请注意,前置的源可能不仅仅是一个固定字符串,它也可以是一个文件,即cat $header $file > tmpfile; mv tmpfile $file

答案1

如果 sed(GNU) 适合你:

$ sed -i '1i #GPL License' file

如果源是文件:

源文件:

$ cat file1
hi
hello
$ cat file2
welcome to
Unix SO.

sed命令:

$ sed -i  '1{
r file1
h;d
};2{H;g;}' file2

sed 命令后的输出:

$ cat file2
hi
hello
welcome to
Unix SO.

sed 的 'r' 命令无法读取第一行之前的文件,因此有此解决方案。第一行保存在保留内存中,file1 的内容被发送到终端,然后当第二行到来时,它与第一行一起打印。

相关内容