在使用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