Shell中expr的用法
Shell中的expr命令虽然大家关注的少,但我发现他的作用还是蛮多的,今天拿来分享一下。match
从字符串开始的位置匹配子串的长度
expr match "$string" '$substring'
expr "$string" : '$substring'
$substring 是一个正则表达式
expr match "$string" '\($substring\)'
expr "$string" : '\($substring\)'
从$string的开始位置提取$substring,$substring是一个正则表达式
index
expr index $string $substring
匹配到子串的第一个字符的位置
提取子串
${string:position}
在string中从位置$position开始提取子串
如果$string 为"*"或"@",那么将提取从位置$position开始的位置参数
${string:position:length}
在string 中从位置$position开始提取$length长度的子串
如果$string参数为"*"或"@",那将最大的提取从$position开始的$length个位置参数
echo ${*:2} # Echo出第2个和后边所有的位置参数
echo ${@:2} # 与前边相同
echo ${*:2:3} # 从第2个开始,Echo出后边3个位置参数
substr
expr substr $string $position $length
在string中从位置$position开始提取$length长度的子串
#
${string#substring}
从$string的左边截掉第一个匹配的$substring
${string##substring}
从$string的左边截掉最后一个个匹配的$substring
%
${string%substring}
从$string的右边截掉第一个匹配的$substring
${string%%substring}
从$string的右边截掉最后一个匹配的$substring
子串替换
${string/substring/replacement}
使用$replacement 来替换第一个匹配的$substring
${string//substring/replacement}
使用$replacement 来替换所有匹配的$substring 额,我自己抢个沙发
页:
[1]