原文https://blog.csdn.net/wuyinggui10000/article/details/52779364

脚本开发中遇到的问题是:原java中的字符串分割操作(substring indexOf等)不知道怎么处理(比如/a/b/c/d.txt我想知道文件的名称)

查询相关资料得知,shell中可以采用标识符来做分割字符串,包括substring(0,index)和substring(index,last)

${var#*substr}会删除从0到substr子字符串最后出现的位置

${var##*substr}会删除substr开始到字符串结束的位置

${var%substr*}会删除字符串最后一次出现到字符串结束的位置的部分

${var%%substr*}会删除字符串第一次出现到结束的部分

  1. a="/a/b/c/d.txt"
  2. b="/"
  3. echo ${a#*$b}

会返回

a/b/c/d.txt

  1. a="/a/b/c/d.txt"
  2. b="/"
  3. echo ${a##*$b}

会返回

d.txt

  1. a="/a/b/c/d.txt"
  2. b="/"
  3. echo ${a%$b*}

会返回

/a/b/c

  1. a="/a/b/c/d.txt"
  2. b="/"
  3. echo ${a%%$b*}

会返回空

Linux Bash Shell字符串分割substring等(转)的更多相关文章

  1. 【Linux】shell字符串分割、数组访问、条件判断

    参考资料: shell字符串分割再循环:http://www.shangxueba.com/jingyan/1633455.html linux shell中 if else以及大于.小于.等于逻辑表 ...

  2. Linux Bash Shell字符串截取

    #!/bin/bash#定义变量赋值时等号两边不能有空格,否则会报命令不存在  # 运行shell脚本两种方式 # 1.作为解释参数 /bin/sh test.sh ;  2.作为可执行文件 chmo ...

  3. 【Linux】linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法

    linux bash shell之变量替换::=句法.=句法.:-句法.-句法.=?句法.?句法.:+句法.+句法   linux bash shell之变量替换::=句法.=句法.:-句法.-句法. ...

  4. linux BASH shell设置字体与背景颜色

    linux BASH shell下设置字体及背景颜色的方法. BASH shell下设置字体及背景颜色  echo -e "\e[31mtest\e[41m"  \e[30m 将字 ...

  5. Linux脚本shell字符串处理

    Linux脚本shell字符串处理,基本都有了,看着搜吧 TLDP教堂 shell中if条件字符串.数字比对,[[ ]]和[ ]区别 Linux 之 shell 比较运算符 Linux Shell编程 ...

  6. Linux Bash Shell常用快捷键

    Linux Bash Shell常用快捷键 table { margin: auto } 快捷键 功能 tab 补全 ctrl + a 光标回到命令行首 ctrl + e 光标回到命令行尾 ctrl ...

  7. Linux bash shell All In One

    Linux bash shell All In One Linux https://tinylab.gitbooks.io/shellbook/content/zh/chapters/01-chapt ...

  8. linux bash shell & lsof & grep & ps

    linux bash shell & lsof & grep & ps lsof list all open files # lsof & grep $ lsof -P ...

  9. Linux Bash Shell 快速入门

    BASH 的基本语法 最简单的例子 —— Hello World! 关于输入.输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 2.1     ...

随机推荐

  1. sublime-代码提示

    py的话安装这个插件: Anaconda user配置 { "python_interpreter":"F:/PY3/python.exe", "su ...

  2. ALV基础二:ALV的扩展功能

    https://www.cnblogs.com/sapSB/p/8532072.html 参考这个,做扩展,有些人喜欢用OO ALV有些喜欢用普通的CALL FUNC ALV...我只用LVC... ...

  3. 网站压力测试工具http_load的安装与使用

    一.安装 1.下载地址:http://www.acme.com/software/http_load/http_load-09Mar2016.tar.gz 2.解压后进入目录,执行make & ...

  4. 二十一. Python基础(21)--Python基础(21)

    二十一. Python基础(21)--Python基础(21) 1 ● 类的命名空间 #对于类的静态属性:     #类.属性: 调用的就是类中的属性     #对象.属性: 先从自己的内存空间里找名 ...

  5. leetcode python 008

    ##  字符串转化为整数##  懒得自己做int0=63435435print(int(int0))

  6. 分布式系统定时任务,保证只有一个服务执行了改任务--采用redis分布式锁来实现(文章摘自:https://www.cnblogs.com/0201zcr/p/5942748.html)

    文章摘自:https://www.cnblogs.com/0201zcr/p/5942748.html package com.abtc.server.mine.common.utils; impor ...

  7. OC学习笔记

    备注:这里只是个人的观点,有的地方也是copy,多多指教,个人笔记,有侵犯你们版权的地方还望海涵!!! ARC单例模式的实现 使用alloc方法初始化一个类的实例的时候,默认是调用了 allocWit ...

  8. Problem A: 平面上的点和线——Point类、Line类 (I)

    Description 在数学上,平面直角坐标系上的点用X轴和Y轴上的两个坐标值唯一确定,两点确定一条线段.现在我们封装一个“Point类”和“Line类”来实现平面上的点的操作. 根据“append ...

  9. 《TypeScript 中文入门教程》

    转载:<TypeScript 中文入门教程> 17.注解 (2015-12-03 11:36) 转载:<TypeScript 中文入门教程> 16.Symbols (2015- ...

  10. Ubuntu16.04+CUDA8.0+cuDNN5.1+Python2.7+TensorFlow1.2.0环境搭建

    软件版本说明:我选的Linux系统是Ubuntu16.04,CUDA用的8.0,Ubuntu16.04+CUDA8.0+cuDNN5.1+Python2.7只支持TensorFlow1.3.0以下的版 ...