您的位置:首页 > 游戏 > 手游 > 平面图在线设计_高端品牌网站建设建议_营销推广计划书_360广告投放平台

平面图在线设计_高端品牌网站建设建议_营销推广计划书_360广告投放平台

2025/4/10 20:18:06 来源:https://blog.csdn.net/weixin_41826215/article/details/147030719  浏览:    关键词:平面图在线设计_高端品牌网站建设建议_营销推广计划书_360广告投放平台
平面图在线设计_高端品牌网站建设建议_营销推广计划书_360广告投放平台

在Linux的Shell脚本中,#%用于字符串截取,通过通配符模式匹配删除部分内容

批量修改文件名技巧:Linux下#、##、%、%%符号操作详解-CSDN博客

从左截取(# 和 ##

  • #:删除最短匹配左侧内容。

  • ##:删除最长匹配左侧内容。

 path="/home/user/docs/file.txt"
echo ${path#*/}      # 输出 "home/user/docs/file.txt"(删除第一个/及左侧)
echo ${path##*/}     # 输出 "file.txt"(删除最后一个/及左侧)

从右截取(% 和 %%

  • %:删除最短匹配右侧内容。

  • %%:删除最长匹配右侧内容。

 file="data.tar.gz"
echo ${file%.*}      # 输出 "data.tar"(删除最后一个.及右侧)
echo ${file%%.*}     # 输出 "data"(删除第一个.及右侧)

 常见用例

提取文件名: 

path="/path/to/file.txt"
filename=${path##*/}  # 输出 "file.txt"

提取目录路径

 dir=${path%/*}        # 输出 "/path/to"

 去除文件扩展名

 name=${file%.*}       # 输出 "data.tar"(针对多级扩展)

获取文件后缀

suffix=${file##*.}    # 输出 "gz"

注意事项

  • 贪婪匹配:双符号(##%%)会尽可能多删除匹配内容。

  • 无匹配时:若模式未匹配,返回原字符串。

  • 通配符支持:使用*?[...]等通配符进行模式匹配。

示例解析

url="http://example.com/path"
domain=${url#*//}        # 删除"http://",得 "example.com/path"
domain=${domain%%/*}     # 删除最长右侧匹配,得 "example.com"

  • # 和 ## 从左删除,适用于提取右侧内容。

  • % 和 %% 从右删除,适用于提取左侧内容。

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com