shell中 #*, ##*, %*, %%*的含义及用法

59 篇文章 3 订阅
37 篇文章 1 订阅
文章介绍了Bash脚本中用于字符串处理的特殊语法,如#*用于删除最小匹配的左边部分,##*删除最长匹配的左边部分,%*移除右边的部分,而%%*则用于提取文件的根目录。这些技巧在处理文件路径和名称时特别有用。
摘要由CSDN通过智能技术生成

1、#*的用法(最小匹配)左边

VAR="/opt/software/hadoop/a.txt"
VAR=${VAR#*/}
echo $VAR

此时,第一条/和它左边的都被删除了
最小匹配也就是找的第一个/

 2、##*(最长匹配) 左边

VAR="opt/software/hadoop/a.text"
VAR=${VAR##*/}
echo $VAR

此时可以看出,最后一个/以及左边的全被删除了

 3、%*  含义:右边和它右边的东西被删除

VAR="/opt/software/hadoop/a.txt"
VAR=${VAR%/*}
echo $VAR

可以看出,右边第一个/和它右边的东西删除了

#号适合提取文件名字,%号适合提取路径

4、%%*    适合:提取文件的根目录

VAR="opt/software/hadoop/a.txt"
VAR=${VAR%%/*}
echo $VAR

 //这个时候opt前面不能加/,如果加了,提取到的就是空字符

记忆的方法为:
# 是 去掉左边(键盘上#在 $ 的左边)
%是去掉右边(键盘上% 在$ 的右边)
单一符号是最小匹配;两个符号是最大匹配

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值