shell 字符串操作
2016-05-20 18:17
537 查看
字符串长度
$ str="hello,mike" $ echo ${#str}
结果
10
用shell自带的分割数组功能(IFS),将字符串分割成数组
将字符串”one,two,three,four”,以逗号为分割符分割为数组。#!/bin/bash a="one,two,three,four" #变量$IFS存储着分隔符,将默认的分隔符备份到OLD_IFS OLD_IFS="${IFS}" #将分隔符设置为逗号“,” IFS="," #将字符串a分割为数组arr,圆括号() arr=(${a}) #恢复默认分隔符 IFS="${OLD_IFS}" #循环遍历打印数组,${arr[@]}存储整个数组 for s in ${arr[@]} do echo ${s} done
上述代码输出结果:
one two three four
摘自: http://1985wanggang.blog.163.com/blog/static/776383320121745626320/
shell截取字符串的方法一
使用 % 号操作符。用途是从右边开始删除直到第一次出现子字符串,即删除第一次出现的子字符串右边的字符,保留左边字符。用法为%substr*,例如:$ str="qa-test-1" $ echo ${str%-*}
结果
qa-test
2.使用 %% 号操作符。用途是从右边开始删除直到最后一次出现子字符串,即删除最后一次出现的子字符串右边的字符,保留左边字符。用法为%%substr*,例如:
$ str="qa-test-1" $ echo ${str%%-*}
结果
qa
3.使用 # 号操作符。用途是从左边开始删除直到第一次出现子字符串,即删除第一次出现的子字符串的左边的字符,保留右边字符。用法为#*substr,例如:
$ str="qa-test-1" $ echo ${str#*-}
结果
test-1
4.使用 ## 号操作符。用途是从左边开始删除直到最后一次出现子字符串,即删除最后一次出现的子字符串的左边的字符,保留右边字符。用法为##*substr,例如:
$ str="qa-test-1" echo ${str##*-}
结果
1
shell截取字符串的方法二
1.从左边第几个字符开始以及字符的个数,用法为:start:len,例如:$ str="hello,mike" $ echo ${str:0:5}
结果:
hello
2.从左边第几个字符开始一直到结束,用法为:start,例如:
$ str="hello,mike" $ echo ${str:6}
结果:
mike
3.从右边第几个字符开始以及字符的个数,用法:0-start:len,例如:
$ str="hello,mike" $ echo ${str:0-5:1}
结果:
,
4.从右边第几个字符开始一直到结束,用法:0-start,例如:
$ str="hello,mike" $ echo ${str:0-4}
结果:
mike
注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)
参照:/article/4631579.html
子串替换一
1.${string/substring/replacement}使用
$replacement来替换第一个匹配的
$substring.
例:
$ str="hello,han" $ echo ${str/han/wang}
结果:
hello,wang
2.
${string//substring/replacement},使用
$replacement来替换所有匹配的
$substring.
例:
$ str="I like java,do you like java?" $ echo ${str//java/shell}
结果:
I like shell,do you like shell?
3.
${string/#substring/replacement},如果
$substring匹配
$string的开头部分, 那么就用
$replacement来替换
$substring.
例:
$ str="I like java,do you like java?" $ echo ${str/#I/she}
结果:
she like java,do you like java?
4.
${string/%substring/replacement},如果
$substring匹配
$string的结尾部分, 那么就用
$replacement来替换
$substring.
$ str="I like java,do you like java?" $ echo ${str/%java?/java or not?}
结果:
I like java,do you like java or not?
子串替换二tr
使用tr进行单个字符的替换
$ str="I like java,do you like java?" $ echo $str | tr " " "_"
结果:
I_like_java,do_you_like_java?
使用tr将小写字母替换为大写字母
$ str="I like java,do you like java?" $ echo $str | tr '[a-z]' '[A-Z]'
结果:
I LIKE JAVA,DO YOU LIKE JAVA?
参照:/content/1034160.html
相关文章推荐
- 安装WEB_shell开源堡垒机 gateone
- Linux Bash Script
- linux基础学习笔记-4-shell编程
- 从学习export命令理解到的Shell环境和变量生存期
- shell和SQL
- 关于Shell脚本中条件表达式
- shell中 if else以及大于、小于、等于逻辑表达式介绍
- shell script编程小结--附带实例
- xshell复制粘贴
- 找到bashrc
- 操作系统知识(6)--Shell初探
- shell脚本里怎样判断某个字符串是否为空
- webshell
- Spark-shell和Spark-submit提交程序的区别
- bash:fdisk:command not found
- shell变量
- Linux shell入门基础知识
- SHELL-expect、正则表达式和sed的使用
- shell 判断文件、目录是否存在
- shell 字符串操作命令详解