${string: start :length} 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。
${string: start} 从 string 字符串的左边第 start 个字符开始截取,直到最后。
${string: 0-start :length} 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。
${string: 0-start} 从 string 字符串的右边第 start 个字符开始截取,直到最后。
${string#*chars} 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string##*chars} 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string%*chars} 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。
${string%%*chars} 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。

1) 从字符串左边开始计数

${string: start :length}
其中,string 是要截取的字符串,start 是起始位置(从左边开始,从 0 开始计数),length 是要截取的长度(省略的话表示直到字符串的末尾)

id="Fn-1-LDM0057_L3_1.fq.gz:Fn-1-LDM0057_L3_2.fq.gz"
echo ${id: 5:7}
echo ${id:5}  # 直到结尾

2 从字符串右边开始计数

${string: 0-start :length} 
从右边开始计数时,起始数字是 1

id="Fn-1-LDM0057_L3_1.fq.gz:Fn-1-LDM0057_L3_2.fq.gz"
echo ${id:0-18:7}
echo ${id:0-18} # 直到结尾

3. 使用 # 号截取右边字符

从左边开始匹配。

${string#*chars} # 遇到第一个匹配的字符(子字符串)就结束
${string##*chars}  # 直到最后一个指定字符(子字符串)再匹配结束

id="Fn-1-LDM0057_L3_1.fq.gz:Fn-1-LDM0057_L3_2.fq.gz"
echo ${id#*:}
echo ${id#*_:}
echo ${id##*_}

4.  使用 % 截取左边字符

从右边开始匹配。

id="Fn-1-LDM0057_L3_1.fq.gz:Fn-1-LDM0057_L3_2.fq.gz"
echo ${id%:*}
echo ${id%_*}
echo ${id%%_*}

linux bash字符串截取相关推荐

  1. linux中字符串截取的八种方法

    Linux 的字符串截取很常用,总结常用不同需求的几种方法 假设有变量 var=http://www.aaa.com/123.htm 1. # 号截取,删除左边字符,保留右边字符. echo ${va ...

  2. linux bash 字符串 连接,Linux Bash 中字符串操作

    Linux Bash 中字符串操作 所谓 "子字符串" 就是出现在其它字符串内的字符串. 比如 "3382" 就是 "this is a 3382 t ...

  3. Linux之字符串截取

    获取字符串的长度 在 Shell 中获取字符串长度很简单,具体方法如下: ${#string_name} string_name 表示字符串名字. root@master:~# b="ma ...

  4. Linux Shell字符串截取(非常详细):#左边开始截取、%右边开始截取、指定位置截取

    演示 Shell 截取字符串通常有两种方式:从指定位置开始截取和从指定字符(子字符串)开始截取. 从指定位置开始截取 这种方式需要两个参数:除了指定起始位置,还需要截取长度,才能最终确定要截取的字符串 ...

  5. linux bash 字符串 连接,Bash连接字符串

    在本小节中,将学习如何在Bash Shell脚本中添加或连接字符串. 在bash脚本编制中,可以将两个或多个字符串添加或连接在一起,这称为字符串连接.它是任何一种编程语言的通用要求之一.应用特殊字符或 ...

  6. linux shell字符串截取总结

    一.字符串变量的截取操作 对字符串变量的截取操作一般都是通过${操作符}的方式进行,如下: 1.从指定位置(index)截取固定长度 格式:${string:start:length} 其中,stri ...

  7. Linux 的字符串截取很有用。有八种方法。

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

  8. Linux shell字符串截取与拼接

    快速链接: .

  9. Linux shell 的字符串截取

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

最新文章

  1. linux笔记第一章--基本命令记载
  2. 数据结构 - 如何找到有环单链表的环的入口位置(C++)
  3. java中怎么固定间距_java中的GridBagLayout是怎么调组件间距的...
  4. easyui edatagrid 触发编辑行回掉onEdit
  5. 冒泡排序、快速排序 java代码实现
  6. pandas 替换 某列大于_Pandas简单入门 1
  7. AeroFS 开源 SSMP 协议,包含 Java 和 Go 实现
  8. 1b8c语言,C语言 - 王朝网络 - wangchao.net.cn
  9. sql2008安装时提示参数不能为空_PHP命令行脚本接收传入参数的三种方式
  10. 【QT】QT从零入门教程(十三):QT画笔工具QPainter (双缓冲绘图)
  11. 如何杀死一个已经detached的screen会话?
  12. TF-tf.keras.layers.Embedding
  13. AR/MR研究团队和机构
  14. html里用js实现随机抽奖,javascript实现随机抽奖功能
  15. JLink JTAG和SWD模式引脚定义
  16. fulisha-English
  17. java分词支持拼音_ik中文分词器及拼音分词器试用
  18. 在 Flutter 中创建响应式表单
  19. 停止在csdn发文及上传资源的声明
  20. (3)网页视频获取下载案例3

热门文章

  1. 单链表的基本操作(增删查总结)
  2. C++中类的静态成员
  3. 阿里云天池大赛赛题解析――深度学习篇
  4. 重磅直播|结构光之相移法+格雷码技术详解
  5. 第二十三课.Kaggle交易预测
  6. 机器学习中常用到的知识点总结
  7. 指定模块打包命令_大前端进阶之Babel、模块化、webpack
  8. 3 calender python_python3笔记二十一:时间操作datetime和calendar
  9. go channel 缓冲区最大限制_Java内卷系列之你不得不知的Go并发基础
  10. mSystems和Microbiology Spectrum杂志“肠道微生态专题”论文征稿