shell脚本字符串玩法

1 用法说明

  • 从变量头开始删除匹配最短word子串
    ${变量#word}
  • 从变量头开始删除最长匹配的word
    ${变量##word}
  • 从变量结尾删除匹配最短的word
    ${变量%word}
  • 从变量结尾删除匹配最长word
    ${变量%%word}
  • 返回变量start数值之后的字符,且包含start(start表示字符串中字符的位置)
    ${变量:start}
  • 提取start之后的length限制字符个数(start表示字符串中字符的位置,length表示字符个数)
    ${变量:start:length}
  • 返回变量的长度
    ${#变量}
    上面这种是最节省时间的,也可以
    echo ${变量} | wc -L
    expr length ${变量}
    echo $变量|awk ‘{print length($0)}’
  • 替换:
    用string去替换第一个查找到的第一个parttern
    ${变量/parttern/string}
    用string去替换查找到的所有parttern
    ${变量//parttern/string}

例子:

#!/bin/bash
name="hellloskljdlskajfdklja"

echo ${#name}
echo ${name} | wc -l
echo ${name} | wc -L
expr length ${name}
echo $name |awk '{print length($0)}'

#验证时间长短
time echo ${#name}
time echo ${name} | wc -l
time echo ${name} | wc -L
time expr length ${name}
time echo $name |awk '{print length($0)}'

echo ${name:4}
echo ${name:4:8}
echo "-----" ${name##helllo}

str="abcABC123ABCabc"

echo ${str##abc} #a*c
echo ${str#abc} #a*c
echo ${str%abc} # a*c
echo ${str%%a*c}
echo ${str/abc/kli}	
echo ${str//abc/kli}

echo ${name/helllo/nihao}

批量修改文件名例子

#!/bin/bash

rm -rvf *.jpg *.png

#for var in {1..5}
#do
#	touch "kli_"${var}"_finished.png"
#	touch "kli_"${var}"_finished.jpg"
#done
	touch "kli_"{1..5}"_finished.png"
	touch "kli_"{1..5}"_finished.jpg"
	
ls

for var in `ls | grep kli`
do
	mv $var ${var//_finished/}
done
ls
for var in `ls | grep kli`
do
	mv $var  ${var//./_finished.}
done
ls

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值