17维客-生活百科-linux百科 >>所属分类 >> shell   

BASH中的字符串处理 编辑词条 发表评论(0)

从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 <string> 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 , 只能用 * ? 的文件扩展方式。

附件列表


→如果您认为本词条还有待完善,请 编辑词条

上一篇监控磁盘空间大小并自动报警脚本下一篇Linux下Shell脚本输出带颜色文字

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0

收藏到: Favorites  

词条信息

liwes
liwes
书童
词条创建者 发短消息   

相关词条