Shell 编程10(字符串处理)
来源:互联网 发布:linux vim环境配置 编辑:程序博客网 时间:2024/05/17 01:24
字符串处理
之前awk的字符串处理函数, 这次介绍expr命令处理字符串
1 计算字符串长度
${#string} 或者 expr length $string
eg
ming@ming-F83VF:~/shellpractice/chapter9$str="Speeding up small jobs in Hadoop"
ming@ming-F83VF:~/shellpractice/chapter9$echo ${#str}
32
ming@ming-F83VF:~/shellpractice/chapter9$expr length "$str"
32
2 索引命令
expr index $string $substring
eg
ming@ming-F83VF:~/shellpractice/chapter9$expr index "$str" jobs
13
eg
ming@ming-F83VF:~/shellpractice/chapter9$jobs=jobs
ming@ming-F83VF:~/shellpractice/chapter9$expr index "$str" $jobs
13
3 抽取子串
#{string:position} #从名称为$string的字符串的第$position个位置开始抽取子串
#{string:position:length} #从名称为$string的字符串的第$position个位置开始抽取长度为$length的子串
注意:#{…}格式的命令从0开始对名称为$string的字符串进行标号(从左边开始!!!!!)
ming@ming-F83VF:~/shellpractice/chapter9$echo ${str:0}
Speeding up small jobs in Hadoop
ming@ming-F83VF:~/shellpractice/chapter9$echo ${str:10}
p small jobs in Hadoop
ming@ming-F83VF:~/shellpractice/chapter9$echo ${str:10:4}
p sm
ming@ming-F83VF:~/shellpractice/chapter9$echo ${str: -6}
Hadoop
#{string: -position} #冒号和横杠符号之间有一个空格符
#{string:(position)} #冒号和左括号之间未必要有空格符
从右边开始!!!!!!!!!!!
ming@ming-F83VF:~/shellpractice/chapter9$echo ${str: -6}
Hadoop
ming@ming-F83VF:~/shellpractice/chapter9$echo ${str:(-6)}
Hadoop
expr substr $string $position$length #从名称为$string的字符串的第$position个位置开始抽取长度为$length的子串
注意: expr substr命令是从1开始对名称为$string的字符串进行标号的(上边的是从0开始!!!)
ming@ming-F83VF:~/shellpractice/chapter9$expr substr "$str" 9 8
up smal
4 删除子串
${string#substring} #删除string开头处与substring匹配的最短子串
${string##substring} #删除string开头处与substring匹配的最长子串
${string%substring} #删除string结尾处与substring匹配的最短子串
${string%%substring} #删除string结尾处与substring匹配的最长子串
eg
定义一个字符串 20121114ReadingHadoop
ming@ming-F83VF:~/shellpractice/chapter9$anotherstr=20121114ReadingHadoop
ming@ming-F83VF:~/shellpractice/chapter9$echo $anotherstr
20121114ReadingHadoop
删除开头处 以 2开始1结尾的 最短字符串!!
ming@ming-F83VF:~/shellpractice/chapter9$echo ${anotherstr#2*1}
21114ReadingHadoop
删除开头处 以 2开始1结尾的 最长字符串!!
ming@ming-F83VF:~/shellpractice/chapter9$echo ${anotherstr##2*1}
4ReadingHadoop
删除结尾处 以 a开始p结尾的 最短字符串!!
ming@ming-F83VF:~/shellpractice/chapter9$echo ${anotherstr%a*p}
20121114ReadingH
删除结尾处 以 a开始p结尾的 最长字符串!!
ming@ming-F83VF:~/shellpractice/chapter9$echo ${anotherstr%%a*p}
20121114Re
5 替换子串
替换子串命令都是${…}格式,可以在任意处、开头处和结尾处替换满足条件的子串
${string/substring/replacement} #仅替换第一次与substring相匹配的子串
${string//substring/replacement} #替换所有与substring相匹配的子串
${string/#substring/replacement} #替换string开头处与substring相匹配的子串
${string/%substring/replacement} #替换string结尾处与substring相匹配的子串
- Shell 编程10(字符串处理)
- shell编程字符串处理
- shell脚本编程四 ——shell字符串处理
- SHELL字符串处理技巧(${}、##、%%)
- SHELL字符串处理技巧(${}、##、%%)
- SHELL字符串处理技巧(${}、##、%%)
- SHELL字符串处理技巧(${}、##、%%)
- SHELL字符串处理技巧(${}、##、%%)
- SHELL字符串处理技巧(${}、##、%%)
- Linux20-shell编程基础、数值计算、字符串处理
- shell处理字符串记录
- shell字符串处理
- shell的字符串处理
- Shell处理字符串方法
- shell字符串处理
- shell 字符串处理
- Shell的字符串处理
- Shell的字符串处理
- oracle update存储过程调用执行不成功的几个原因
- 文件类型的数据插入不到数据库(mySql)
- Hibernate 第十讲 表关联关系(七)单向多对一
- android定时器的用法总结
- c3p0配置
- Shell 编程10(字符串处理)
- 第一周练习题项目一练习二
- linux驱动编译的两种方式
- 使用Hibernate时不能在mysql字段中用desc
- Struts2配置文件详解
- 类库冲突解决方法
- Oracle编写带数组参数的存储过程
- 十五数码问题
- Android GPS 定位 1