首先先声明一个变量str,下面演示以该变量为例:

str='https://www.baidu.com/about.html'

1.#号截取,删除左边字符,保留右边字符

echo ${str#*//}

说明:

  • str为变量
  • #号是运算符
  • *//表示从左边开始删除第一个//号及左边的所有字符

结果:www.baidu.com/about.html

2.## 号截取,删除左边字符,保留右边字符

echo ${str##*/}

说明:

  • ##*/表示从左边开始删除最后(最右边)一个/号以及左边所有的字符

结果:about.html

3.%号截取,删除右边字符,保留左边字符

echo ${str%/*}

说明:

  • %/*表示从右边开始,删除第一个/以及右边所有字符

结果:https://www.baidu.com

4.%% 号截取,删除右边字符,保留左边字符

echo ${str%%/*}

说明:

  • %%/*表示从右边开始,删除最后(最左边)一个/号以及右边的所有字符

结果:https:

5.截取从左边指定位置开始,以及指定截取的字符个数

echo ${str:0:5}

说明:

  • 0表示从第一个字符开始截取,5表示截取5个字符

结果:https

6.截取从左边指定位置开始,直到结束

echo ${str:8}

说明:

  • 表示从左边第9个字符开始(由于下标是从0开始),一直到结束。

结果:www.baidu.com/about.html

7.截取从右边指定位置开始,以及指定截取的字符个数

echo ${str:0-10:10}

说明:

  • 0-10表示从右边第10个字符开始,截取右边10个字符的长度。

结果:about.html

说明,如果截取的右边字符超过右边的总长度,那么也是返回右边的所有字符,如:

echo ${str:0-10:100}

结果:about.html

8.截取从右边指定位置开始,直到结束

echo ${str:0-10}

说明:

  • 表示从右边第10个字符位置开始,直到结束

结果:about.html

shell脚本字符串截取方法整理的更多相关文章

  1. Shell脚本字符串截取方法总结

    Shell脚本8种字符串截取方法总结转自:https://www.cnblogs.com/ralphdc/p/8032335.html Linux 的字符串截取很有用.有八种方法.假设有变量 var= ...

  2. shell脚本字符串截取的8种方法

    假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. echo ${var#*//} 其中 var 是变量名,# 号是运算符,*/ ...

  3. shell脚本字符串截取

    假设有变量 var=http://www.google.com/test.htm 一 # 号截取,删除左边字符,保留右边字符.echo ${var#*//}其中 var 是变量名,# 号是运算符,*/ ...

  4. 【iOS】Swift字符串截取方法的改进

    字符串截取方法是字符串处理中经常使用的基本方法.熟悉iOS的朋友都知道在基础类的NSString中有substringToIndex:,substringFromIndex:以及substringWi ...

  5. Shell脚本的调试方法

    Shell脚本的调试方法 Shell提供了一些用于调试脚本的选项,如下所示: -n    读一遍脚本中的命令但不执行,用于检查脚本中的语法错误 -v    一边执行脚本,一边将执行过的脚本命令打印到标 ...

  6. Shell脚本8种字符串截取方法总结

    Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. 代码如下: echo ${va ...

  7. shell脚本中8种字符串截取方法_转自脚本之家

    转自:http://www.jb51.net/article/56563.htm 参考:http://blog.csdn.net/taiyang1987912/article/details/3955 ...

  8. shell 脚本常用调试方法

    曾经我刚开始学习 shell 脚本时,除了知道用 echo 输出一些信息外,并不知道其他方法,仅仅依赖 echo 来查找错误,比较难调试且过程繁琐.效率低下.本文介绍下我常用的一些 shell 脚本调 ...

  9. Linux 的字符串截取方法(转)

    Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. echo ${var#*//} ...

  10. [转]shell脚本打印日志方法

    该文章转自:http://blog.csdn.net/wylfengyujiancheng/article/details/50019299 ----------------------------- ...

随机推荐

  1. [oeasy]python0082_[趣味拓展]控制序列_清屏_控制输出位置_2J

    光标位置 回忆上次内容 上次了解了键盘演化的过程 ESC 从 组合键 到 独立按键   ​   添加图片注释,不超过 140 字(可选)   ESC的作用 是 进入 控制序列 配置 控制信息 控制信息 ...

  2. 《Programming from the Ground Up》阅读笔记:p75-p87

    <Programming from the Ground Up>学习第4天,p75-p87总结,总计13页. 一.技术总结 1.persistent data p75, Data whic ...

  3. 使用threejs实现3D卡片菜单

    成品效果: 用到的技术:vue2.three.js.gsap.js template <template> <div id="box" class="c ...

  4. nacos启动失败:No DataSource set

    通过docker查看nacos的日志发现nacos好端端的突然不能用了 docker logs nacos 报错后说是no datasource set,我看了我在docker里的MySQL是正常启动 ...

  5. Bond4配置

    Bongding聚合链路工作模式 > bond聚合链路模式共7种:0-6Mode > bond 0 负载均衡 轮询方式往每条链路发送报文,增加带宽和容错能力.容易出现数据包无序到达的问题, ...

  6. 优化 GitHub 体验的浏览器插件「GitHub 热点速览」

    上周,GitHub 有个"安全问题"--CFOR(Cross Fork Object Reference)冲上了热搜,该问题的表现是: 远程仓库的提交内容任何人可以访问,即使已被删 ...

  7. Jmeter强制结束线程

    例子:正常的线程是执行2次请求 1.需要实现结果 执行请求1后,判断test1=100,强制结束线程 执行请求1后,判断test1 != 100,继续执行请求2 2. 线程组改造 在请求1后面增加[i ...

  8. 【Vue】04 模块化开发演变

    JS最初的目的是用来做表单验证和动画效果,可以让网页更加生动. 但是使用Ajax,前后端分离,页面承担了更多的事情,JS的代码量暴增,代码管理维护逐渐困难 我们需要将JS代码抽取出来,模块化处理, 但 ...

  9. 【转载】 tensorflow batch_normalization的正确使用姿势

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/computerme/article/de ...

  10. 从分布式计算的角度看pytorch和TensorFlow哪个更优?

    背景: pytorch框架是一个从学术圈出来的框架,因此pytorch并不原生支持分布式计算,而且在大模型火爆的今年以外好像在深度学习领域使用分布式计算的场景确实不多,所以pytorch并不原生支持分 ...