linux下向一個檔案中的某行插入資料的做法

散盡浮華發表於2017-08-02

 

sed -i 'ni\x' test.file        表示向test.file檔案裡的第n行的前面新增x內容
sed -i 'na\x' test.file       表示向test.file檔案裡的第n行的後面新增x內容

sed -i '/m/i\x' test.file     表示向test.file檔案裡匹配m字串的行的前面新增x內容
sed -i '/m/a\x' test.file    表示向test.file檔案裡匹配m字串的行的後面新增x內容

-i     表示in front,前面
-a    表示after,後面

比如向a.txt檔案的首行新增123456789
# sed -i '1i\123456789' a.txt

比如向a.txt檔案的第3行新增hhhhh
# sed -i '3a\hhhhh' a.txt

比如向a.txt檔案匹配abcd字串的行的前面新增66666
# sed -i '/abcd/i\66666' a.txt

比如向a.txt檔案匹配1234字串的行的後面新增hahaha
# sed -i '/1234/a\hahaha' a.txt

比如向/etc/puppet/puppet.conf檔案中的第2行的前面新增" server=puppet01.test.cn"內容
然後再向第3行新增" runinterval = 600"內容
# /bin/sed -i '2i\ server=puppet01.test.cn' /etc/puppet/puppet.conf
# /bin/sed -i '3i\ runinterval = 600' /etc/puppet/puppet.conf

===========遠端批量關閉程式main的指令碼===========

[root@kevn script]# cat 6_main_stop.sh 
#!/bin/bash
for i in $(cat /opt/ip.list)
do
ssh -p22 root@$i 'ps -ef|grep main|grep -v grep|awk -F" " "{print $2}"|xargs kill -9 >/dev/null 2>&1'
done

=============================================

取最後一個字元:awk '{print substr($0,length())}' filename
[root@localhost ~]# cat a
3G
32G
123G
2348G
123131G
123123123123123G
[root@localhost ~]# awk '{print substr($0,length())}' a
G
G
G
G
G
G
[root@localhost ~]# awk -F"G" '{print $1}' a
3
32
123
2348
123131
123123123123123

相關文章