各符号介绍

字符串长度统计

  • ${#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. mqtt安装和使用

    linux下 下载: wget https://www.emqx.io/downloads/broker/v3.2.1/emqx-centos7-v3.2.1.zip 解压:unzip emqx-ce ...

  2. Java向MySQL写入中文乱码问题解决

    Java向MySQL写入中文乱码问题解决 以下仅为本人工作.学习过程中所接触到的内容,不足之处欢迎指出. 问题现象: 使用Java代码向MySQL数据库写入数据,中文字符出现乱码. 解决步骤: 1.查 ...

  3. Localstorage、sessionStorage、cookie 的区别

    共同点:都是保存在浏览器端.且同源的 区别: 1.cookie 数据始终在同源的 http 请求中携带(即使不需要),即 cookie 在浏览器和服务器 间来回传递,而 sessionStorage ...

  4. varchar(1)占用几个字节

    在version4之前,MySQL中varchar长度是按字节:而version5之后,按字符.如varchar(6),在version4,表示占用6个字节,而在version5中,表示占用6个字符. ...

  5. Redis设计实现-学习笔记

    最近在准备面试,问到redis相关知识,只能说个皮毛,说的既不深入也不全面,所以抓紧突击一下,先学<redis设计与实现>. 选择看书的原因是: 书中全面深入,且能出书一定十分用心: 搜博 ...

  6. Spring的隔离级别,Spring事务传播属性,Spring事务与数据库事务之间的联系

    一.Spring五大事务隔离级别 Spring事务隔离级别比数据库事务隔离级别多一个default在进行配置的时候,如果数据库和spring代码中的隔离级别不同,那么以spring的配置为主.1) D ...

  7. 重写react-navigation的stackNaviagtor产生的默认导航栏header样式

    主要是默认的stackNavigator产生的效果,很难看 重写这个阴影,在当前路由配置的 navigationOptions里的 headerStyle写样式 navigationOptions:{ ...

  8. 20211306丁文博 python技能树、CSDN MarkDown编辑器

    测评内容: python技能树.CSDN MarkDown编辑器 指导老师:王志强 班级:2113 学号:20211306 姓名:丁文博 https://blog.csdn.net/weixin_62 ...

  9. iOS App转让/转移详细步骤(配图)

    参考:https://www.jianshu.com/p/57bc6d229be2

  10. Django基础篇 06-Django模板过滤器Filter和标签Tags

    一.Django模板的内置过滤器Filter 什么是模板(Template)? Django的Template是如何工作的 Django的模板是静态的html文件,它只决定了一个页面的样式或外观.它需 ...