shell中字符串操作主要有以下几种,其中:pattern ,old中可以使用通配符:

${#var} :返回字符串变量var的长度

${var:m} :返回${var}中从第m+1个字符到最后的部分,其中m的取值从0到${#var}-1

${var:m:len}:返回${var}中从第m+1个字符开始,长度为len的部分

[root@tlinux shell]# var=abcdefg
[root@tlinux shell]# echo ${#var}
7
[root@tlinux shell]# echo ${var:2}
cdefg
[root@tlinux shell]# echo ${var:2:3}
cde

${var#pattern}:删除${var}中开头部分与pattern匹配的最小部分(剩余部分)

${var##pattern}:删除${var}中开头部分与pattern匹配的最大部分

${var%pattern}:删除${var}中结尾部分与pattern匹配的最小部分

${var%%pattern}:删除${var}中结尾部分与pattern匹配的最大部分

 1 #! /bin/bash
2
3 var="/aa/bb/cc"
4
5 result1=${var#*/}
6 result2=${var##*/}
7 result3=${var%/*}
8 result4=${var%%/*}
9 echo $var
10
11 echo '${var#*/}='$result1
12 echo '${var##*/}='$result2
13 echo '${var%/*}='$result3
14 echo '${var%%/*}='$result4
~
/aa/bb/cc
${var#*/}=aa/bb/cc
${var##*/}=cc
${var%/*}=/aa/bb
${var%%/*}=

${var/old/new}:用new替换${var}中第一次出现的old

${var//old/new}:用new替换${var}中所有的old(全局替换)

shell编程之字符串操作的更多相关文章

  1. shell编程系列25--shell操作数据库实战之备份MySQL数据,并通过FTP将其传输到远端主机

    shell编程系列25--shell操作数据库实战之备份MySQL数据,并通过FTP将其传输到远端主机 备份mysql中的库或者表 mysqldump 常用参数详解: -u 用户名 -p 密码 -h ...

  2. shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中

    shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mys ...

  3. shell编程系列23--shell操作数据库实战之mysql命令参数详解

    shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使 ...

  4. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...

  5. shell中的字符串操作和数学运算

    字符串操作   变量赋值: 说明:变量值可以用单引号.双引号.或者不加任何引号来赋值给变量 变量名="变量值" 变量名='变量值' 变量名=变量值 例如:str="hel ...

  6. shell中的字符串操作

    SHELL字符串操作 bash Shell提供了多种字符串处理的命令: awk命令 expr命令 字符串长度 ${#..} expr length awk的length(s) 实例: string=& ...

  7. linux shell学习(字符串操作)--01

    http://blog.csdn.net/shuanghujushi/article/details/51298672 在bash shell的使用过程中,经常会遇到一些字符串string的操作,下面 ...

  8. 五 shell 变量与字符串操作

    特点:1 shell变量没有数据类型的区分 2 Shell 把任何存储在变量中的值,皆视为以字符组成的“字符串”.    3  设定的变量值只在当前shell环境中有作用    4   不能以数字开头 ...

  9. Linux - 简明Shell编程03 - 字符串(String)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash str="Shell ...

随机推荐

  1. 多测师讲解自动化测试 _RF关键字001_(上)_高级讲师肖sir

    讲解案例1: Open Browser http://www.baidu.com gc #打开浏览器 Maximize Browser Window #窗口最大化 sleep 2 #线程等待2秒 In ...

  2. 经验分享:对于刚接触开发的大学生,怎么在Windows查看与关闭端口占用方法?

      前言:做开发有的时候会发现某一端口被占用了而导致不能正常启动服务,这个时候就需要把这个端口释放掉了,步骤如下 观察报错信息提示,了解是哪个端口号被占用,以8700为例 按win+r输入cmd打开控 ...

  3. cve-2020-1472,netlogon特权提升漏洞复现

    cve-2020-1472,netlogon特权提升漏洞, 漏洞原理:攻击者通过NetLogon(MS-NRPC),建立与域控间易受攻击的安全通道时,可利用此漏洞获取域管访问权限.成功利用此漏洞的攻击 ...

  4. springboot入门系列(二):SpringBoot整合Swagger

    上一篇<简单搭建SpringBoot项目>讲了简单的搭建SpringBoot 项目,而 SpringBoot 和 Swagger-ui 搭配在持续交付的前后端开发中意义重大,Swagger ...

  5. 在PostgreSQL中CREATE STATISTICS

    如果你用Postgres做了一些性能调优,你可能用过EXPLAIN.EXPLAIN向你展示了PostgreSQL计划器为所提供的语句生成的执行计划,它显示了语句所引用的表如何被扫描(使用顺序扫描.索引 ...

  6. 在git下如何创建分支

    创建main分支下的远程分支dev: 直接输入dev,就可以创建在main分支下的远程分支dev了 在dev下创建devdev

  7. springmvc maven 入门及页面拿不到controller的值 显示${message} el表达式不起作用

    1:参考https://www.cnblogs.com/zhuawang/p/5651896.html 操作完,运行,结果不是后端控制器controller返回的,是index.jsp中的. 因为执行 ...

  8. maven 配置文件 settings.xml pom.xml

    maven涉及的配置文件一般有三个:(作用范围依次减小,优先级依次升高) 全局配置(maven安装包中):${M2_HOME}/conf/settings.xml 用户配置(该文件是拷贝全局配置而来的 ...

  9. 模型评价指标:AUC

    参考链接:https://www.iteye.com/blog/lps-683-2387643 问题: AUC是什么 AUC能拿来干什么 AUC如何求解(深入理解AUC) AUC是什么 混淆矩阵(Co ...

  10. IDEA 搭建 Spark 源码 (Ubuntu)

    版本:Spark 2.4.3/JDK 1.8/Scala 2.11.0 1.选择Spark版本.压缩包下载. 2.IDEA中左下角Terminal下输入: mvn -DskipTests clean ...