Linux中的sed常用技巧

51 篇文章 0 订阅

vim中的sed常用技巧 & shell脚本中的sed常用技巧

 

1)vim中的sed常用技巧

vim+sed技巧

vim的范围使用
1,$  表示范围行首至行尾
.,$  表示范围当前行至行尾
%    表示范围时表示整个文件,如果不表示范围时表示当前文件名

在所有行中查找字符串出现的次数
: %s/查找的字符串/&/gn

在指定的m和n行范围之间查找字符串出现的次数
: m,n s/字符串/&/gn


指定范围(0,$代表全文)搜索替换字符串、不提示确认
: 0,$ s/40px/35px/g

指定范围(0,$代表全文)搜索替换字符串、提前逐个提示确认
: 0,$ s/40px/35px/gc

 

2)shell脚本中的sed常用技巧

eg1: 针对变量的内容进行正则查找和替换

#!/bin/sh

ip1=$1
ip2=$2

if [ $# != 2 ]; then
  echo please use: $0 ip1 ip2
  exit 1
fi

echo ip1=$ip1
echo ip2=$ip2

net1=$(echo $ip1 | sed -E "s/\.[0-9]{1,3}$/\.0/g")
net2=$(echo $ip2 | sed -E "s/\.[0-9]{1,3}$/\.0/g")

echo $net1
echo $net2

[root@localhost home]# ./ip.sh  1.1.1.1 2.2.2.2
ip1=1.1.1.1
ip2=2.2.2.2
1.1.1.0
2.2.2.0

 

eg2:针对文件的内容进行正则查找替换

#!/bin/sh

BASE=/opt/testApp

file="$BASE/plugins/myPlugin/myApp.properties"

if [ ! -f $file ]; then
  echo "ERROR: file not found: $file"
  exit
fi

if [ "$#" -eq 1 -a "$1" = "-h" ] || [ "$#" -ne 0 -a "$#" -ne 1 ]; then
  echo "  please use: $0 [retryNum] , valid retryNum: 8 ~ 100"
  echo "  eg: $0 20 , without retryNum, the default retryNum is 20"
  exit
fi

retryNum=20
pattern='^[0-9]+$'

if [ "$#" -eq 1 ]; then
  if [[ ! "$1" =~ $pattern ]]; then
    echo "ERROR: invalid retryNum: $1 ! valid retryNum: 8 ~ 100"
    exit
  else
    if [ "$1" -gt 100 -o "$1" -lt 8 ]; then
      echo "ERROR: invalid retryNum: $1 ! valid retryNum: 8 ~ 100"
      exit
    fi
    retryNum=$1
  fi
fi

echo "value(old): $(cat $file |grep maxretryNum)"

sed -i s/maxretryNum=.*/maxretryNum=$retryNum/g $file

echo "value(new): $(cat $file |grep maxretryNum)"
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunny05296

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值