緣由:需要批量修改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檔案後的順...