- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Shell 字符串操作
Shell 字符串操作
前言
忙活了⼀个礼拜,终于等到周末,可以空下来写点东西。
之前已经完成 《 值运算》和 《布尔运算》,这次轮到介绍字符串操作 。咱们先得弄
明⽩两个内容:
什么是字符串?
对字符串有哪些操作?
下⾯是在线新华字典的解释:
字符串:简称“ 串” 。有限字符的序列。 据元素为字符的线性表,是⼀种
据的逻辑结构。在计算机中可有不同的存储结构。在串上可进⾏求⼦
串、插⼊字符、删除字符、置换字符等运算。
⽽字符呢?
字符:计算机程序设计及操作时使⽤的符号。包括字母、 字、空格符、
提⽰符及各种专⽤字符等。
照这样说,之前介绍的 值运算中的 字,布尔运算中的真假值,都是以字符的形式
呈现出来的,是⼀种特别的字符,对它们的运算只不过是字符操作的特例罢了。⽽这
⾥将研究⼀般字符的运算,它具有⾮常重要的意义,因为对我们来说,⼀般的⼯作都
是处理字符⽽已。这些运算实际上将围绕上述两个定义来做,它们包括:
找出字符或者字符串的类型,是 字、字母还是其他特定字符,是可打印字
符,还是不可打印字符 (⼀些控制字符)。
找出组成字符串的字符个 和字符串的存储结构 (⽐如 组)。
对串的常规操作:求⼦串、插⼊字符、删除字符、置换字符、字符串的⽐较
等。
对串的⼀些⽐较复杂⽽有趣的操作,这⾥将在最后介绍⼀些有趣的范例。
字符串的属性
字符串的类型
字符有可能是 字、字母、空格、其他特殊字符,⽽字符串有可能是它们中的⼀种或
者多种的组合,在组合之后还可能形成具有特定意义的字符串,诸如邮件地址,URL
地址等。
范例:数字或者数字组合
$ i=5;j=9423483247234;
$ echo $i | grep -q ^[0-9]$
$ echo $?
0
$ echo $j | grep -q ^[0-9]\+$
$ echo $?
0
范例:字符组合 (⼩写字母、⼤写字母、两者的组合)
$ c= ; d=fwefewjuew; e=fewfEFWefwefe
$ echo $c | grep -q ^[ -Z]$
$ echo $d | grep -q ^[a-z]\+$
$ echo $e | grep -q ^[a-z -Z]\+$
范例:字母和数字的组合
$ ic=432fwfwefeFWEwefwef
$ echo $ic | grep -q ^[0-9a-z -Z]\+$
范例:空格或者 Tab 键等
$ echo | grep
$ echo -e \t | grep [[:space:]] #[[:space:]]会同时匹配空格和T B
$ echo -e \t | grep [[:space:]]
$ echo -e \t | grep #为在键盘上按下T B键,⽽不是字符
范例: 配邮件地址
$ echo test2007@ | grep [0-9a-z -Z\ .]*@[0-9a-z -Z\ .]
test2007@
范例: 配 URL 地址(以 http 链接为例)
$ echo /article.jsp?newsid=10135 | grep
/article.jsp?newsid=10135
说明:
/dev/null 和 /dev/zero 设备⾮常有趣,都犹如⿊洞,什么东西掉进去都
会消失殆尽;后者还是个能源箱,总能从那⾥取到0 ,直到退出
[[:space:]] 是 grep ⽤于匹配空格或 TAB 键字符的标记,其他标记请查帮
助:man grep
上⾯都是⽤ grep 来进⾏模式匹配,实际上 sed,awk 都可⽤来做模式匹配,
关于匹配中⽤到的正则表达式知识,请参考后⾯的相关资料
如果想判断字符串是否为空,可判断其长度是否为零,可通过 test 命令的 -z
选项来实现,具体⽤法见 test 命令,man test
范例:判断字符是否为可打印字符
$ echo \t\n | grep [[:print:]]
\t\n
$ echo $?
0
$ echo -e \t\n | grep [[:print:]]
$ echo $?
1
字符串的长
文档评论(0)