当前位置:  首页  >  服务器技术  >  Linux/unix  >  Linux教程

BASH中的字符串处理

文章标题:BASH中的字符串处理。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  从shell版转过来的,用于我以后的学习,正文如下:

  得到长度

  %x="abcd"

  #方法一

  %expr length $x

  4

  # 方法二

  %echo ${#x}

  4

  # 方法三

  %expr "$x" : ".*"

  4

  # expr 的帮助

  # STRING : REGEXP   anchored pattern match of REGEXP in STRING

  查找子串

  %expr index  $x "b"

  2

  %expr index  $x "a"

  1

  %expr index  $x "b"

  2

  %expr index  $x "c"

  3

  %expr index  $x "d"

  4

  得到子字符串

  # 方法一

  # expr startpos length

  %expr substr "$x" 1 3

  abc

  %expr substr "$x" 1 5

  abcd

  %expr substr "$x" 2 5

  bcd

  # 方法二

  # ${x:pos:lenght}

  %echo ${x:1}

  bcd

  %echo ${x:2}

  cd

  %echo ${x:0}

  abcd

  %echo ${x:0:2}

  ab

  %pos=1

  %len=2

  %echo ${x:$pos:$len}

  bc

  匹配正则表达式

  # 打印匹配长度

  %expr match $x "."

  1

  %expr match $x "abc"

  3

  %expr match $x "bc"

  0

  字符串的掐头去尾

  %x=aabbaarealwwvvww

  %echo "${x%w*w}"

  aabbaarealwwvv

  %echo "${x%%w*w}"

  aabbaareal

  %echo "${x##a*a}"

  lwwvvww

  %echo "${x#a*a}"

  bbaarealwwvvww

  其中 , # 表示掐头, 因为键盘上 # 在 $ 的左面。

  其中 , % 表示%,  因为键盘上 % 在 $ 的右面。

  单个的表示最小匹配,双个表示最大匹配。

  也就是说,当匹配的有多种方案的时候,选择匹配的最大长度还是最小长度。

  字符串的替换

  %x=abcdabcd

  %echo ${x/a/b} # 只替换一个

  bbcdabcd

  %echo ${x//a/b} # 替换所有

  bbcdbbcd

  不可以使用 regexp , 只能用 * ? 的文件扩展方式。

吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有