Shell 字符串操作(截取、替换、去头、去尾)


一、截取

格式:${变量:起始位置:长度}
字符串
phone=0123456789

从 1 索引位置开始截取,截取到尾部,包含 1 位置

echo ${phone:1}

输出结果

123456789

从 1 索引位置开始截取 6 位,包含 1 位置

echo ${phone:1:6}

输出结果

123456

从 1 索引位置开始截取,截取到倒数第 2 位,不包含倒数第 2 位,这种方式有的解释器不支持,会提示不能小于 0

echo ${phone:1:-2}

输出结果

1234567

二、替换

格式:
替换一个结果:${变量/旧字符串/新字符串}
替换全部结果:${变量//旧字符串/新字符串}

字符串

phone=66668888

单个替换

echo ${phone/6/0}

输出结果

06668888

全部替换

echo ${phone//6/0}

输出结果

00008888

三、去头

格式:
从左向右,最短匹配删除:${变量#关键词}
从左向右,最长匹配删除:${变量##关键词}

字符串

phone=1-22-333-4:555-6-777

最短匹配删除

echo ${phone#*-}

输出结果

22-333-4:555-6-777

最长匹配删除

echo ${phone##*-}

输出结果

777

最短匹配删除

echo ${phone#*:}

输出结果

555-6-777

四、去尾

格式:
从右向左,最短匹配删除:${变量%关键词}
从右向左,最长匹配删除:${变量%%关键词}

字符串

phone=1-22-333-4:555-6-777

最短匹配删除

echo ${phone%-*}

输出结果

1-22-333-4:555-6

最长匹配删除

echo ${phone%%-*}

输出结果

1

最短匹配删除

echo ${phone%:*}

输出结果

1-22-333-4

声明:小小博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Shell 字符串操作(截取、替换、去头、去尾)


Carpe Diem and Do what I like