shell 进阶

字符串插入替换(sed)

1,插入与删除

#特定字符串的行前插入新行
sed -i '/特定字符串/i 新行字符串' file

#特定字符串的行后插入新行
sed -i '/特定字符串/a 新行字符串' file

#文件末尾插入新行
sed -i '$a 新行字符串' file

#将包含特定字符串的行删除
sed -i '/字符串/d' file

2,字符串替换

# 替换文件中的所有匹配项(不带/g只会替换每行第一个匹配项)
sed -i 's/原字符串/替换字符串/g' filename

例如:
#将test.sh中name=XXX替换成name=lily
sed -i 's/name=.*/name=lily/g' ./test.sh

#如果同一行是“name=XXX,ageXXX”的情况,需要加上逗号:
sed -i 's/name=.*,/name=lily,/g' ./test.sh


#假设name固定为4字母,也可以如下实现:
sed -i 's/name=[a-zA-Z]\{4\}/name=lily/g' ./test.sh

说明:
\([0-9]\{3\}\)  匹配数字连续出现三次
[a-zA-Z]\{3\} 匹配字母联系出现三次

比较

参数个数: $#

整数比较 
-eq 等于,如:if [ "$a" -eq "$b" ] 
-ne 不等于,如:if [ "$a" -ne "$b" ] 
-gt 大于,如:if [ "$a" -gt "$b" ] 
-ge 大于等于,如:if [ "$a" -ge "$b" ] 
-lt 小于,如:if [ "$a" -lt "$b" ] 
-le 小于等于,如:if [ "$a" -le "$b" ] 
> 大于(需要双括号),如:(("$a" > "$b")) 
>= 大于等于(需要双括号),如:(("$a" >= "$b")) 

字符串比较 
= 等于,如:if [ "$a" = "$b" ] 
== 等于,如:if [ "$a" == "$b" ],与=等价 
注意:==的功能在[[]]和[]中的行为是不同的,如下: 
 [[ $a == z* ]] # 如果$a以"z"开头(模式匹配)那么将为true 
 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true 

 [ $a == z* ] # File globbing 和word splitting将会发生 
 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值