可能的重复:
如何在多个文件的开头添加标签?
除了创建一个在标题处带有一行的临时文件,并在完成后将其移回原处之外,是否有一种标准方法可以在文件中添加一些行?
即有时你会这样做(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 的内容被发送到终端,然后当第二行到来时,它与第一行一起打印。