各符号介绍

字符串长度统计

  • ${#string}: 字符串string的长度

字符串截取

  • ${string#*substring}: 从左到右截取特定字符substring第一次出现位置之后的字符串
  • ${string##*substring}:  从左到右截取特定字符substring最后一次出现位置之后的字符串
  • ${string%substring*} :  从右到左截取特定字符substring第一次出现位置之后的字符串
  • ${string%%substring*}:  从右到左截取特定字符substring最后一次出现位置之后的字符串
  • ${string:num1:num2}:  截取从位置num1开始长度为num2的字符
  • ${string:num1}: 截取从位置num1开始的字符,不指定长度,默认到字符串最后
  • ${string:(-num1)}: 截取字符串尾部向前长度为num1的字符

匹配并替换

  • ${string/substring/string2}: 从左到右,使用string2代替第一个匹配的substring
  • ${string//substring/string2}: 从左到右,使用string2代替所有匹配的substring
  • ${string/#substring/string2}: 将匹配substring的string前缀替换为string2
  • ${string/%substring/string2}: 将匹配substring的string后缀替换为string2

字符串删除

  • ${string/substring}: 从左到右,删除第一个匹配的substring

字母大小写转换

  • ${string^^}: 将字符串string转换成大写
  • ${string^^a}: 将字符串string中的字母a转换成大写
  • ${string,,}: 将字符串string转换成小写
  • ${string,,A}: 将字符串string中的字母A转换成小写

代码示例

~/tmp$ html="https://www.cnblogs.com/chaimy/p/17041668.html//https://www.cnblogs.com/chaimy/p/17041668.html"
#字符串长度统计
~/tmp$ echo ${#html}
94 #字符串截取
~/tmp$ echo ${html#*chai}
my/p/17041668.html//https://www.cnblogs.com/chaimy/p/17041668.html
~/tmp$ echo ${html##*chai}
my/p/17041668.html
~/tmp$ echo ${html%chai*}
https://www.cnblogs.com/chaimy/p/17041668.html//https://www.cnblogs.com/chaimy/p/17041668.html
~/tmp$ echo ${html%%chai*}
https://www.cnblogs.com/
~/tmp$ echo ${html:0:6}
https:
~/tmp$ echo ${html:1}
ttps://www.cnblogs.com/chaimy/p/17041668.html//https://www.cnblogs.com/chaimy/p/17041668.html
~/tmp$ echo ${html:(-4)}
html #匹配并替换
~/tmp$ string="abc123abc123abc123"
~/tmp$ echo ${string/123/666}
abc666abc123abc123
~/tmp$ echo ${string//123/666}
abc666abc666abc666
~/tmp$ echo ${string/#123/666}
abc123abc123abc123
~/tmp$ echo ${string/#abc/666}
666123abc123abc123
~/tmp$ echo ${string/%123/666}
abc123abc123abc666 #字符串删除
~/tmp$ string="abc123abc123abc123"
~/tmp$ echo ${string/123}
abcabc123abc123 #字母大小写转换
~/tmp$ string="aBaC"
~/tmp$ echo ${string^^}
ABAC
~/tmp$ echo ${string^^a}
ABAC
~/tmp$ echo ${string,,}
abac
~/tmp$ echo ${string,,B}
abaC

Linux shell字符操作总结的更多相关文章

  1. linux shell 字符串操作(长度,查找,替换)详解

    linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...

  2. linux shell 字符串操作

    转:http://justcoding.iteye.com/blog/1963463 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作 ...

  3. linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 )

    在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略 ...

  4. (正则表达式)linux shell 字符串操作(长度,查找,替换,匹配)详解

    在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略 ...

  5. linux shell 字符串操作详解(获取长度、查找,替换)

    在做shell批处理程序时候,常常会涉及到字符串相关操作.有许多命令语句,如:awk,sed都能够做字符串各种操作. 事实上shell内置一系列操作符号,能够达到相似效果,大家知道,使用内部操作符会省 ...

  6. linux shell 字符串操作(长度,查找,替换)

    感谢原创,文章很有帮助. 转自:http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html 一.判断读取字符串值 表达式 含义 ${v ...

  7. Linux shell字符串操作

    #!/bin/bash #镜像名 image="asr-server" #镜像版本 ver="5.2.1" #容器名 dname="asr" ...

  8. Linux shell 误操作

    shell脚本在日常运维中是必不可少会应用到,下面是自己亲身经历过的一件事.会了定期清除日志,编写了一个shell脚本,内容如下: [root@centos- tmp]# more remote_lo ...

  9. Linux shell 时间操作(取昨天 前天)

    1. 取今天时间 $date -d "now" +%Y-%m-%d 2. 取昨天时间 $date -d "yesterday" +%Y-%m-%d $date  ...

  10. Linux Shell系列教程之(五)Shell字符串

    本文是Linux Shell系列教程的第(五)篇,更多shell教程请看:Linux Shell系列教程 字符串是Shell编程中最常用最有用的数据类型,今天,Linux大学网就为大家介绍一下在She ...

随机推荐

  1. py打包工具

    库地址: auto-py-to-exe https://pypi.org/project/auto-py-to-exe/ Gooey https://pypi.org/project/Gooey/ 为 ...

  2. centos 7 更改Jenkins 主目录

    默认为:/var/lib/jenkiins 1 创建更改后的目录  (所有步骤用root执行!!!) mkdir -p /data/jenkiins 2  将原有目录数据拷贝到更改后的目录 cp -r ...

  3. UE4.27 新版本像素流送插件配置

    UE4.27 像素流送新版插件部署命令 以下内容参考自UE5官方文档:https://docs.unrealengine.com/5.0/en-US/unreal-engine-pixel-strea ...

  4. 转L:[JAVA基础] 成员变量和局部变量(一看就懂的总结归纳篇)

    [JAVA基础] 成员变量和局部变量(一看就懂的总结归纳篇) JVM--Java虚拟机详解

  5. DDR内存256M16、512M8含义

    256M16,后面的16是代表数据位数,也可以认为是16个bit.一般一个Byte是8个bit.例如256M4的容量为256*16 bit = 4096Mb = 512MB所以 256M16和 512 ...

  6. Angular+FileSaver实现导出(xlsx或ExcelJS)

    1.安装相关插件 npm install file-saver --savenpm install @types/file-saver --save-dev 一.xlsx(虽然强大,但是默认不支持改变 ...

  7. mac 打开活动监视器(任务管理器)

    打开方式 1.快捷键 command+option+esc 选择需要强制退出的app 2.通过菜单 需要查看完整的占用率 应用程序=>实用工具=〉活动监视器

  8. RN 使用react-navigation写可以滚动的横向导航条

    在react-native中写横向导航条,首选肯定是react-navigation的createMaterialTopTabNavigator,附上官方文档链接.https://reactnavig ...

  9. iClock数据服务器默认账号密码

    网络空间资产搜索: shodan 搜索 默认密码 admin/a***n End!!!

  10. 211808543 钟志凌 https://home.cnblogs.com/u/211808543zhongzhiling/ https://github.com/wayne9

    211808543  钟志凌     https://home.cnblogs.com/u/211808543zhongzhiling/   https://github.com/wayne9