其他分享
首页 > 其他分享> > sed替换 使用案例记录

sed替换 使用案例记录

作者:互联网

缘由: 需要批量修改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 '{print $0,"xxxx"}' 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' 进行全局替换,然后将该文件内容输出到标准输出。

 

 

 

 

 

标签:xtrabackuplog,log,echo,案例,sed,date,masterdb,替换
来源: https://blog.csdn.net/csdnhsh/article/details/92249564