sed替換 使用案例記錄

2021-09-24 11:58:56 字數 2381 閱讀 1418

緣由:需要批量修改n臺db的備份指令碼,把其中的乙個log日誌路徑修改下。乙個個vi進去修改太麻煩了,就想到了用sed替換命令。

1將檔案的將/var/log/xtrabackuplog變成/mysqlbackup/$hostname/xtrabackuplog_$(date +%y%m%d).log,原檔案內容如下:

for masterdb in `cat int.db.full`;do

echo $masterdb

ssh $masterdb "df -h" |grep -i mysqldata;

echo ""

echo "completed: `date`" >> /var/log/xtrabackuplog

echo '';

echo "completed: `date`" >> /var/log/xtrabackuplog

done;

2 要將它變成如下內容:

for masterdb in `cat int.db.full`;do

echo $masterdb

ssh $masterdb "df -h" |grep -i mysqldata;

echo ""

echo "completed: `date`" >> /mysqlbackup/$hostname/xtrabackuplog_$(date +%y%m%d).log

echo '';

echo "completed: `date`" >> /mysqlbackup/$hostname/xtrabackuplog_$(date +%y%m%d).log

done;

3 注意裡面有/目錄符號,需要用\來轉義。

sed命令如下:

sed -i 's/\/var\/log\/xtrabackuplog/ \/mysqlbackup\/$hostname\/xtrabackuplog_$(date +%y%m%d).log/g' sed_t.sh
[novamysqladminint@eanintmydbc000ctl ~]$   sed -e 's/\/var\/log\/xtrabackuplog/ \/mysqlbackup\/$hostname\/xtrabackuplog_$(date +%y%m%d).log/g' sed_t.sh 

for masterdb in `cat int.db.full`;do

echo $masterdb

ssh $masterdb "df -h" |grep -i mysqldata;

echo ""

echo "completed: `date`" >> /mysqlbackup/$hostname/xtrabackuplog_$(date +%y%m%d).log

echo '';

echo "completed: `date`" >> /mysqlbackup/$hostname/xtrabackuplog_$(date +%y%m%d).log

done;

4 ok,搞定。

5 sed替換擴充套件部分

(1)在每一行的末尾加分號

sed 's/.*/&;/' g.sql >g1.sql

awk '' file

(2)去掉第一行記錄

sed -i '1d' g1.log

(3)在每行的頭新增字元,比如"head",命令如下:

sed 's/^/head&/g' test.file
(4)在每行的行尾新增字元,比如「tail」,命令如下:

sed 's/$/&tail/g' test.file

(5)刪除檢索到的行,-i在原始檔上面修改

sed -i '/grant fors/d' t.file
(6)sed替換

sed -e 's/foo/bar/' myfile.txt  

此命令將 myfile.txt 中每行第一次出現的 'foo'(如果有的話)用字串 'bar' 替換,然後將該檔案內容輸出到標準輸出。

sed -e 's/foo/bar/g' myfile.txt

此命令將 myfile.txt 中每行出現的 'foo'(如果有的話)用字串 'bar' 進行全域性替換,然後將該檔案內容輸出到標準輸出。

sed使用記錄

一 插入批量內容 批量修改檔案內容一般使用sed,但是在插入多行內容和不同格式的時候就遇到困難了,今天終於知道怎麼處理了,記錄一下!插入以下內容。變更前 apiversion extensions v1beta1 kind deployment metadata spec apiversion ex...

sed替換中使用變數

在centos下對oracle配置的過程中,需要對dbca.rsp進行配置 檔案分為幾個模組,對應不同操作的配置。共有 createdatabase createtemplatefromdb createclonetemplate deletedatabase generatescripts con...

sed命令使用記錄

背景 檔案a,檔案b,檔案格式一致,有兩列,第一列為key,第二列為value。目的 將檔案a中的內容插入到檔案b中,不能在最後,不能有重複key 我的key和value用tab鍵分割 實現 我的實現很low,就是查詢key,若有再刪除再寫入,若無則直接寫入。增加了全域性變數a是為了插入b檔案後的順...