各符号介绍

字符串长度统计

  • ${#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. 基于.NET Core3.1的SQLiteHelper增删改帮助类

    安装驱动包 install-package Microsoft.Data.Sqlite -version 3.1.7 install-package System.Data.SQLite.Core - ...

  2. JAVA根据时间增加1天

    String time = "2021-12-1"; //指定时间 int day = 30;//指定增加天数 SimpleDateFormat sf = new SimpleDa ...

  3. Delphi实现大写字母键打开提示

    uses XPMan 编辑框的passwordChar属性设置成 *

  4. 3MP/5MPNetwork-Camera摄像头默认口令

    网络资产搜索: shodan: 找到5MP-Network-Carema 登陆:admin/a***n End!!!

  5. Go语言中密码加密校验

    使用go自带的库bcrypt bcrypt是不可逆的加密算法,无法通过解密密文得到明文. bcrypt和其他对称或非对称加密方式不同的是,不是直接解密得到明文,也不是二次加密比较密文,而是把明文和存储 ...

  6. 【JavaScript】JS写法随笔(二) JS动态生成表格

    主要思路:通过Ajax请求后端接口并拿到结果list之后,然后通过DOM获取tbody并向tbody中添加行.单元格. $("#calculate").click(function ...

  7. iOS自动化测试

    学习步骤: 1.能够搭建iOS自动化测试所需要的环境 2.能够使用模拟器进行iOS自动化测试 3.能够使用真机进行iOS自动化测试 一.环境搭建 应用场景 想要进行iOS自动化测试,前提条件需要进行环 ...

  8. 使用python脚本批量造数据

    本篇将采用 Python 脚本的方式进行批量给mysql造数据. 为了使 Python 可以连上数据库(MySQL),并且可以与数据库交互(增删改查等操作),则需要安装 MySQL 客户端操作库.  ...

  9. AX2012 日期时间格式化

    public static str DateTimeFormatStr(utcDateTime _dateTime, str _format = '{0:yyyy-MM-dd HH:mm:ss}') ...

  10. sqlsever中使用的 select top n在mysql 语句中如何更改

    string sqlSelect = "select top(3) ROW_NUMBER() over(order by UserTime) as Num,* from " + & ...