shell字符串截取

shell字符串截取

ID:20915373

大小:68.00 KB

页数:5页

时间:2018-10-17

shell字符串截取_第1页
shell字符串截取_第2页
shell字符串截取_第3页
shell字符串截取_第4页
shell字符串截取_第5页
资源描述:

《shell字符串截取》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、shell字符串的截取shell字符串的截取的问题:一、Linuxshell截取字符变量的前8位,有方法如下:  1.exprsubstr“$a”18  2.echo$a

2、awk‘{printsubstr(,1,8)}’  3.echo$a

3、cut-c1-8  4.expr$a:‘(.\).*’  5.echo$a

4、ddbs=1count=82>/dev/null二、按指定的字符串截取  1、第一种方法:${varible##*string}从左向右截取最后一个string后的字符串${varible#*string}从左向右截取第一个string后的字符串${varible%%

5、string*}从右向左截取最后一个string后的字符串${varible%string*}从右向左截取第一个string后的字符串“*”只是一个通配符可以不要例子:$MYVAR=foodforthought.jpg$echo${MYVAR##*fo}rthought.jpg$echo${MYVAR#*fo}odforthought.jpg  2、第二种方法:${varible:n1:n2}:截取变量varible从n1到n2之间的字符串。可以根据特定字符偏移和长度,使用另一种形式的变量扩展,来选择特定子字符串。试着在bash中输入以下行:$EXCLAIM=cowabunga$ec

6、ho${EXCLAIM:0:3}cow$echo${EXCLAIM:3:7}abunga这种形式的字符串截断非常简便,只需用冒号分开来指定起始字符和子字符串长度。三、按照指定要求分割:比如获取后缀名ls-al

7、cut-d“.”-f2 一、构造字符串直接构造STR_ZERO=helloSTR_FIRST="iamastring"STR_SECOND='success'重复多次#repeatthefirstparm($1)by$2timesstrRepeat(){localx=$2if["$x"==""];thenx=0filocalSTR_TEMP=""while[$x-ge1];do

8、STR_TEMP=`printf"%s%s""$STR_TEMP""$1"`x=`expr$x-1`doneecho$STR_TEMP}举例:STR_REPEAT=`strRepeat"$USER_NAME"3`echo"repeat=$STR_REPEAT"二、赋值与拷贝直接赋值与构造字符串一样USER_NAME=terry从变量赋值ALIASE_NAME=$USER_NAME三、联接直接联接两个字符串STR_TEMP=`printf"%s%s""$STR_ZERO""$USER_NAME"`使用printf可以进行更复杂的联接四、求长求字符数(char)COUNT_CHAR=`e

9、cho"$STR_FIRST"

10、wc-m`echo$COUNT_CHAR求字节数(byte)COUNT_BYTE=`echo"$STR_FIRST"

11、wc-c`echo$COUNT_BYTE求字数(word)COUNT_WORD=`echo"$STR_FIRST"

12、wc-w`echo$COUNT_WORD五、比较相等比较str1=str2不等比较str1!=str2举例:if["$USER_NAME"="terry"];thenecho"Iamterry"fi小于比较#return0ifthetwostringisequal,return1if$1<$2,else2strCompar

13、e(){localx=0if["$1"!="$2"];thenx=2localTEMP=`printf"%s%s""$1""$2"`localTEMP2=`(echo"$1";echo"$2")

14、sort`if["$TEMP"="$TEMP2"];thenx=1fifiecho$x}六、测试判空-zstr判非空-nstr是否为数字#return0ifthestringisnum,otherwise1strIsNum(){localRET=1if[-n"$1"];thenlocalSTR_TEMP=`echo"$1"

15、sed's/[0-9]//g'`if[-z"$STR_TEMP"

16、];thenRET=0fifiecho$RET}举例:if[-n"$USER_NAME"];thenecho"mynameisNOTempty"fiecho`strIsNum"9980"`七、分割以符号+为准,将字符分割为左右两部分使用sed举例:命令date--rfc-3339seconds的输出为2007-04-1415:09:47+08:00取其+左边的部分date--rfc-3339seconds

17、sed's/+[0-9][0-9]:[0-9][0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。