sed使用过程中出现的问题总结

sed 中的参数 s 替换
             d 删除
             p 打印
             g 匹配此行所有
             e ''单引号表示要执行的命令
             
eg:
sed -e 's/root/shrek/g' /etc/passwd   替换root为shrek包括替换多个匹配
sed -e '/hash/d' /etc/passwd   删除行中hash;/hash/是正则表达式
sed -n -e '/\<shrek\>/p' /etc/passwd 打印完全匹配sherk的行
sed -n -e '/\<shrek\>/s/bash/nologin/' /etc/passwd
sed -e '/^#/d' -e '/^$/d' /etc/passwd | wc -l 把文件中所有的#和空行都删除,^$表示已空行结尾就是空行;wc -l统计行数




//sed 正则表达式匹配


sed -i 's/^a.*b$/ccccc/' map.txt //把map.txt文件中以a开头b结尾的替换为cccc
注意:如果sed要替换的变量中有/分隔符的话,可以把分隔符换成别的来实现例如叹号!或者@符号


sed -i 's!wrapper.java.command=java!wrapper.java.command='"$dir"'!' ppg.conf //这里的变量dir中有分隔符/所以使用感叹号!


#!/bin/bash
dir=/home/jdk1.7.0_80/bin/java
for((i=0;i<=32;i++))
do
  cd /home/ppg$i/conf/
  #d=$[$i+8821];
#      sed -i 's/ioserver.mtmsg.isack=0/ioserver.mtmsg.isack=1/' ppg.properties
#after given line append text 
#  c=`grep StrictHostKeyChecking /etc/ssh/ssh_config | wc -l`
#  if [ $c -eq 1 ]; then
#       sed -i -e '/#   StrictHostKeyChecking ask/a\StrictHostKeyChecking no' /etc/ssh/ssh_config
#  else
       #sed -i 's/192.168.137.199/127.0.0.1/' ppg.properties
       #sed -i 's/vm.hashnode_dim=3/vm.hashnode_dim=5/' ppg.properties
       #sed -i 's/servlet.handler=8821/servlet.handler='"$d"'/' ppg.properties
       sed -i 's!wrapper.java.command=java!wrapper.java.command='"$dir"'!' ppg.conf
       #sed -i -e '/afs.data.ext=.afs/a\afs.hcnt.ext=.cnt' ppg.properties


       #sed -i -e '/ppgsvr=localhost:8821/a\serviceName=ppg'"$i"'-vm.'"$i"'.'"$i"'-199' ppg.properties
       #sed -i '/^afs.hcnt.*.cnt$/d' ppg.properties
       #sed -i '/^shell./d' ppg.properties     
#  fi
done




shell中如果要把变量运算
例如a=1
a=$(($a+1))
a=$[$a+1]
let a++
let a+=1
((a++))
都可以实现变量加1操作
#d=$[$i+8821];//上面实例中d变量




sed做字符串处理时,在sed语句中要使用变量时,我们可以使用单引号中套双引号的方式
sed -i 's!wrapper.java.command=java!wrapper.java.command='"$dir"'!' ppg.conf
上例中dir变量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值