LinuxSir.Org  
| 网站首页 | 注册账号 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
精华主题  
主题工具
旧 03-11-30, 18:17 第 1 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

标题: BASH中字符串的处理[转]


来自: www.chinaunix.net
特此感谢作者: CharlesWang2

得到长度:
代码:
%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 , 只能用 * ? 的文件扩展方式。
  KornLee 当前离线   回复时引用此帖
旧 04-09-11, 21:45 第 2 帖
chilam
 
 
 
注册会员  
  注册日期: Sep 2004
  帖子: 4
  精华: 0
 

顶!很有用的东西
  chilam 当前离线   回复时引用此帖
旧 07-12-20, 13:53 第 3 帖
yueliangdao0608 帅哥
 
yueliangdao0608 的头像
 
 
注册会员  
  注册日期: Feb 2005
  我的住址: 深圳
  帖子: 18
  精华: 0
 

# 方法二
%echo ${#x}
4
# 方法三
%expr "$x" : ".*"

这两个不是很明白。会的给讲一下







__________________
I'm a mysql dba in china.
More details about me just visit:
http://yueliangdao0608.cublog.cn
  yueliangdao0608 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 12:57


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2010, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2009, LinuxSir.Org