2008-07-10
BASH中字符串的处理
作者:花开 发布时间: 2008-07-10 | 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处、作者信息及本声名。
本文链接: http://www.bsdmap.com/2008/07/10/bash-strings/
$x=abcd
[得到长度]
方法1:
$expr length $x
4
方法2:
$echo ${#x}
4
方法3:
$expr “$x” : “.*” #expr的手册信息
4 #STRING : REGEXP anchored pattern match of REGEXP in STRIN
[查找子串]
$expr index $x “b”
2
$expr index $x “a”
1
[得到子字符串]
方法1:
#expr startpos length
$expr substr “$x” 1 3
abc
$expr substr “$x” 1 5
abcd
$expr substr “$x” 2 5
bcd
方法2:
#${x:pos:lenght}
$echo ${x:1}
bcd
$echo ${x:2}
cd
$echo ${x:0}
abcd
$echo ${x:0:1}
a
[匹配正则表达式]
[打印匹配长度]
$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
On this day..
- SHELL程序的不同执行方式 - 2008
- BASH多进程并行处理的方法实现 - 2008
- 查看系统当前处于连接状态(tcpCurrEstab)的连接数的方法 - 2008