Linux Shell字符串截取#与%使用

背景Jenkins需要解析gerrit的commit message中特殊字段的值,比如Depend-On:字段的值

比如commit msg内容如下:用变量msg表示

 1. # 号截取, 截取指定字符保留边的字符串,删除边的部分。分为#和##两种

 1.1 # 号截取,删除左边字符,保留右边字符。(从左往右查找第一次出现的字符串)

msg=${msg#*Depend-On:}

echo ${msg}

1.2 ## 号截取,删除左边字符,保留右边字符。(从左往右查找最后一次出现的字符串)

2. %号截取,截取指定字符保留左边的字符串,删除右边的部分。分为%和%%

2.1 %号截取,删除右边字符,保留左边字符。(从右往左查找第一次出现的字符串)

msg=${msg%Change-Id:*}

echo ${msg}

 2.2 %% 号截取,删除右边字符,保留左边字符。(从右往左查找后一次出现的字符串)

其中,msg表示被截取的字符串,Depend-On:和\n 是指定的字符(或者子字符串),遇到特殊字符要加转译符\,比如\n, *是通配符

commitMsg=`git log -1`
echo "commitMsg=$commitMsg"
#cut with Depend-On:
dependOn=${commitMsg#*Depend-On:}
#cut white space
#dependOn=${dependOn#* }
echo "dependOn=$dependOn"
dependOn=${dependOn%Change-Id:*}
echo "dependOn=$dependOn"
dependOn=`echo $dependOn`
echo "final dependOn=$dependOn"

相关推荐

  1. 截取字符串

    2024-04-24 23:28:06       30 阅读
  2. js 字符串截取截取指定字符前面/后面的字符串

    2024-04-24 23:28:06       13 阅读
  3. Python 截取字符串的方法

    2024-04-24 23:28:06       31 阅读
  4. shell——变量之字符串截取

    2024-04-24 23:28:06       35 阅读
  5. mysql 截取字符串及解析json

    2024-04-24 23:28:06       20 阅读
  6. MySQL中截取字符串有哪些方法

    2024-04-24 23:28:06       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-24 23:28:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-24 23:28:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-24 23:28:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-24 23:28:06       20 阅读

热门阅读

  1. C语言oj题

    2024-04-24 23:28:06       11 阅读
  2. Sql多表查询

    2024-04-24 23:28:06       11 阅读
  3. 消息队列的简介

    2024-04-24 23:28:06       12 阅读
  4. 解耦、异步、削峰是什么

    2024-04-24 23:28:06       12 阅读
  5. 前端 -- if-else嵌套地狱

    2024-04-24 23:28:06       14 阅读
  6. class090 贪心经典题目专题2【左程云算法】

    2024-04-24 23:28:06       12 阅读
  7. 最短路问题之Dijkstra算法 洛谷 单源最短路径

    2024-04-24 23:28:06       12 阅读
  8. 上海计算机学会4月月赛 丙组题解

    2024-04-24 23:28:06       14 阅读
  9. MySQL的MVCC机制

    2024-04-24 23:28:06       14 阅读