码迷,mamicode.com
首页 > 其他好文 > 详细

bash 参数替换中的模式匹配

时间:2014-12-07 21:43:28      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:ar   使用   sp   for   art   bs   as   tt   nbsp   

 参数替换中的模式匹配

 

 # 和## 从字符串的左边开始,并且去掉左边的字符串,

 % 和 %% 从字符串的右边开始,并且去掉右边的子串.

例如

name=hello lhhs "root"

name=${name#‘"‘}; name=${name%‘"‘}

结果为root

################################Start Script#######################################

 1 #!/bin/bash

 2 # patt-matching.sh

 3

 4 # 使用# ## % %%来进行参数替换操作的模式匹配.

 5

 6 var1=abcd12345abc6789

 7 pattern1=a*c  # * (通配符) 匹配a - c之间的任何字符.

 8

 9 echo

10 echo "var1 = $var1"           # abcd12345abc6789

11 echo "var1 = ${var1}"         # abcd12345abc6789

12                               # (alternate form)

13 echo "Number of characters in ${var1} = ${#var1}"

14 echo

15

16 echo "pattern1 = $pattern1"   # a*c  (everything between ‘a‘ and ‘c‘)

17 echo "--------------"

18 echo ‘${var1#$pattern1}  =‘ "${var1#$pattern1}"    #         d12345abc6789

19 # 最短的可能匹配, 去掉abcd12345abc6789的前3个字符

20 #                     |-|               ^^^

21 echo ‘${var1##$pattern1} =‘ "${var1##$pattern1}"   #                  6789     

22 # 最远的匹配,去掉abcd12345abc6789的前12个字符.

23 #                |----------|      ^^^^

24

25 echo; echo; echo

26

27 pattern2=b*9            # ‘b‘ 到‘9‘之间的任何字符

28 echo "var1 = $var1"     # 还是 abcd12345abc6789

29 echo

30 echo "pattern2 = $pattern2"

31 echo "--------------"

32 echo ‘${var1%pattern2}  =‘ "${var1%$pattern2}"     #     abcd12345a

33 # 最近的匹配, 去掉abcd12345abc6789的最后6个字符

34 #                           |----|  ^^^^

35 echo ‘${var1%%pattern2} =‘ "${var1%%$pattern2}"    #     a

36 # 最远匹配, 去掉abcd12345abc6789的最后12个字符

37 #                |-------------|  ^^^^^^

38

39 # 记住, # 和## 从字符串的左边开始,并且去掉左边的字符串,

40 #           % 和 %% 从字符串的右边开始,并且去掉右边的子串.

41

42 echo

43

44 exit 0

bash 参数替换中的模式匹配

标签:ar   使用   sp   for   art   bs   as   tt   nbsp   

原文地址:http://www.cnblogs.com/fastwave2004/p/4149868.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!