shell中几种常用截取字符串的方法

来源:互联网 发布:做淘宝赚钱吗 编辑:程序博客网 时间:2024/06/05 16:35

shell中几种常用截取字符串的方法

一. 概念
在shell中通过截取字符串操作可以提取到我们所需要的特定字符串
假设变量char=http://write.blog.csdn.net/mdeditor

二. 操作符
① #表示 从左截取,删除左边字符,保留右边字符

echo ${char#*//}

其中 char是变量名,# 号是运算符,*//表示从左边开始删除第一个 //号及左边的所有字符
即删除 http://
结果是 :write.blog.csdn.net/mdeditor
② %表示从右边开始截取,删除右边字符,保留左边字符

echo ${char%/*}

其中char是变量名,%号是运算符,%*/表示从右边开始删除第一个/号及右边的所有字符
结果是:http://write.blog.csdn.net
③ ##表示从左边开始截取,删除左边字符,保留右边字符

echo ${char##*/}

其中char是变量名,##号是运算符,##*\表示从左边开始匹配最后一个(最右边一个)/,并且删除该\及前面的所有字符
结果是:mdeditor
④ %%表示从右边开始截取,删除右边字符,保留左边字符

echo ${char%%/*}

其中char是变量名,%%号是运算符,%%*\表示从右边开始匹配最后一个(最左边一个)/,并且删除该\及右边的所有字符
结果是:http:
⑤ 从左边第几个字符开始,及字符的个数

echo ${var:0:5}

其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:
三. 浅谈截取字符串的用处
shell中经常需要将某个操作输出的结果存储在某个变量中,然后对该变量存储的字符串进行截取获取特定字符串,这些截取有可能是使用grep或者sed或者gawk难以得到的