机器人 救救瓜
Toggle navigation
Home
SCM-tool
Linux
Jenkins
SVN
other
About Me
Archives
Tags
Shell里截取的用法
? shell ?
? linux ?
2019-01-25 15:30:51
695
0
0
gua_l
? shell ?
? linux ?
##### 规律用法记忆点tips ``` 从左边开始匹配:# ## 从右边开始匹配:% %% 最大化匹配:叠号 ## %% (从左/右匹配,当匹配到多个关键符时,匹配到最后一个停下) 最小化匹配:单号 # % (从左/右匹配,当匹配到多个关键符时,匹配到第一个停下) 从左匹配,* 号放在匹配符左边: */ *. *- 从右匹配,* 号放在匹配符右边: /* .* var=/vob/lcf/test.txt 常用取文件名:剩下的是从左起最后一个/的右边部分 ${var##*/} 常用取后缀:剩下的是从左起最后一个.的右边部分 ${var##*.} 常用取路径:剩下的是从右起第一个.的左边部分 ${var%/*} ``` ---------- ###### 从左开始最大化匹配 ${var##*X} ``` #从左开始最大化匹配到字符"X",然后截掉左边内容(包括字符"X"),返回余下右侧部分 echo ${var##*X} #从左匹配到最后一个“/” ,并取最后一个“/”右侧的部分 echo ${var##*/} #从左匹配到最后一个“.” ,并取最后一个“.”右侧的部分 echo ${var##*.} var="/vob/nfv-builds/testaaa.txt" echo ${var##*/} #取文件名 testaaa.txt echo ${var##*.} #取文件后缀 txt ``` ---------- ###### 从左开始最小化匹配 ${var#*X} ``` #从左开始最小化匹配到字符"X",然后截掉左边内容(包括字符"X"),返回余下右侧部分 echo ${var#*X} #从左匹配到第一个“/” ,并取第一个“/”右侧的部分 echo ${var#*/} #从左匹配到第一个“.” ,并取第一个“.”右侧的部分 echo ${var#*.} var="/vob/nfv-builds/testaaa.tar.gz" echo ${var#*/} #vob/nfv-builds/testaaa.tar.gz echo ${var#*.} #取文件多后缀 tar.gz ``` ---------- ###### 从右开始最大化匹配${var%%X*} ``` #从右开始最大化匹配到字符"X",然后截掉右边内容(包括字符"X"),返回余下左侧部分 echo ${var%%X*} #从右匹配到最后一个“/” ,并取最后一个“/”左侧的部分 echo ${var%%/*} #从右匹配到最后一个“.” ,并取最后一个“.”左侧的部分 echo ${var%%.*} var="4.9.3-128-111" echo ${var%%-*} #从右数最后一个- 左边: 4.9.3 echo ${var%%.*} #从右数最后一个. 左边: 4 ``` ---------- ###### 从右开始最小化匹配 ${var%X*} ``` #从右开始最小化匹配到字符"X",然后截掉右边内容(包括字符"X"),返回余下左侧部分 echo ${var%X*} #从右匹配到第一个“/” ,并取第一个“/”左侧的部分 echo ${var%/*} #从右匹配到第一个“.” ,并取第一个“.”左侧的部分 echo ${var%.*} var="/vob/nfv-builds/testaaa.txt" echo ${var%/*} #得到路径 /vob/nfv-builds echo ${var%.*} #/vob/nfv-builds/testaaa ```
Pre:
Shell 拼接的用法
Next:
git 查看两个commit 之间的修改
0
likes
695
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Submit
Sign in
to leave a comment.
No Leanote account?
Sign up now.
0
comments
More...
Table of content
No Leanote account? Sign up now.