Shell脚本编程中给现有⽂件在不同位置增加⼀⾏或多⾏内容的
⽅法
在使⽤shell脚本编程中,我们有时会有这样的⼀种需求
就是给已经存在的⽂件,添加⼀⾏或者多⾏内容(并指定添加/插⼊的位置,或者⾏号)
在shell脚本,⽅法可能也有多种,这⾥笔者这⾥列出⾃⼰常⽤的⼀些⽅法
⽅法⼀(推荐):使⽤sed命令,不得不说sed确认是linux系统中⾮常有⽤的⼀个命令,对于添加内容,还可以指定位置
关于位置,⼀般可以在最开头位置(即插⼊后,成为第⼀⾏),也可以插⼊到最后⼀⾏的前⾯,也可以追加到最后⼀⾏(即成为最后⼀⾏内容)# 在第⼀⾏前插⼊⼀⾏,即成为第⼀⾏的内容
shell创建文件并写入内容[qq_5201351@localhost ~]# sed -i '1i first
# 在最后⼀⾏前插⼊⼀⾏,即成为倒数第⼆⾏的内容
[qq_5201351@localhost ~]# sed -i '$i next-to-last
# 在最后⼀⾏后插⼊⼀⾏,即成为最⼀⾏的内容
[qq_5201351@localhost ~]# sed -i '$a last
注:其实也就是⽤到了指定⾏及插⼊/追加指令,这样其实我们还可以指定任意⾏号,进⾏插⼊和附加
⽅法⼆,可以使⽤echo 和 >> 的⽅法添加内容,不过这样只能添加到最后
[qq_5201351@localhost ~]$ echo -n 1 >
[qq_5201351@localhost ~]$ echo2 >>
[qq_5201351@localhost ~]$
12
[qq_5201351@localhost ~]$ echo -n 1 >
[qq_5201351@localhost ~]$ sed -i '$a
[qq_5201351@localhost ~]$
1
2
[qq_5201351@localhost ~]$
总结:可以看出echo结合>>与sed的最后⼀⾏追加,还是有点区别的(但在⼤部分情况下是没有区别的)
根据实际情况选择,不过笔者认为使⽤sed的$a追加指令的功能在有些时候可能更可靠⼀点,如可以⽤于配置⽂件的新配置添加。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论