在使用shell脚本编程中,我们有时会有这样的一种需求
就是给已经存在的文件,添加一行或者多行内容(并指定添加/插入的位置,或者行号)
在shell脚本,方法可能也有多种,这里笔者这里列出自己常用的一些方法
方法一(推荐):使用sed命令,不得不说sed确认是linux系统中非常有用的一个命令,对于添加内容,还可以指定位置
关于位置,一般可以在最开头位置(即插入后,成为第一行),也可以插入到最后一行的前面,也可以追加到最后一行(即成为最后一行内容)
# 在第一行前插入一行,即成为第一行的内容 [qq_5201351@localhost ~]# sed -i '1i first line' file.txt # 在最后一行前插入一行,即成为倒数第二行的内容 [qq_5201351@localhost ~]# sed -i '$i next-to-last line' file.txt # 在最后一行后插入一行,即成为最一行的内容 [qq_5201351@localhost ~]# sed -i '$a last line' file.txt
注:其实也就是用到了指定行及插入/追加指令,这样其实我们还可以指定任意行号,进行插入和附加
方法二,可以使用echo 和 >> 的方法添加内容,不过这样只能添加到最后
[qq_5201351@localhost ~]$ echo -n 1 > file.txt [qq_5201351@localhost ~]$ echo 2 >> file.txt [qq_5201351@localhost ~]$ cat file.txt 12 [qq_5201351@localhost ~]$ echo -n 1 > file.txt [qq_5201351@localhost ~]$ sed -i '$a 2' file.txt [qq_5201351@localhost ~]$ cat file.txt 1 2 [qq_5201351@localhost ~]$
总结:可以看出echo结合>>与sed的最后一行追加,还是有点区别的(但在大部分情况下是没有区别的)
根据实际情况选择,不过笔者认为使用sed的$a追加指令的功能在有些时候可能更可靠一点,如可以用于配置文件的新配置添加。
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/14799609.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!