各符号介绍

字符串长度统计

  • ${#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. Django 之 ORM1

    1.ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...

  2. NX二次开发,对象上色

    #include <uf_defs.h> #include <uf_ui_types.h> #include <uf.h> #include <uf_ui.h ...

  3. 射频识别技术(RFID)

    概述: 无线射频识别即射频识别技术(Radio Frequency Identification,RFID),是自动识别技术的一种,通过无线射频方式进行非接触双向数据通信,利用无线射频方式对记录媒体( ...

  4. noi 1.1 4 保留三位的浮点数

    描述 输入一个单精度浮点数,保留3位小数输出这个浮点数. 输入 只有一行,一个单精度浮点数. 输出 也只有一行,输入的单精度浮点数. 样例输入 12.34521 样例输出 12.345 题意 就是输入 ...

  5. vantUI <van-uploader> 上传图片,如何获取图片的尺寸

    html代码 <van-uploader preview-size="300px" style="width:300px;display:block;margin: ...

  6. 学习Vue踩过的坑

    1.用Vue绑定方法的时候里面的methods:要加s!!! 2.v-on只有在事件监听(@click=" 方法名")和不需要参数时候才不要加 ( ),在胡子写法中{{ fun() ...

  7. 1903021126 申文骏 Java 第六周作业 类与对象

    项目 内容 课程班级博客链接 19级信计班(本) 作业要求链接 第六周作业 博客名称 1903021126  申文骏  Java 第六周作业  类与对象 要求 每道题要有题目,代码(使用插入代码,不会 ...

  8. LeetCode 删除数组中重复项 26 80

    26(80) 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素只出现一次(使得出现次数超过两次的元素只出现两次 ) ,返回删除后数组的新长度.元素的 相对顺序 应该保 ...

  9. 【NumPy】Python利用linspace进行数据采样

    情景 假设有一堆长度为1000的数据,我现在只想要其中800个并且要求整体趋势一样,那就可以试试使用linspace进行等间距的采样. 简介 linspace(start, stop, num=50, ...

  10. 作业三:CART回归树算法

    作业三:CART回归树算法 班级:20大数据(3)班 学号:201613341 题目一 表1为拖欠贷款人员训练样本数据集,使用CART算法基于该表数据构造决策树模型,并使用表2中测试样本集确定剪枝后的 ...