Bash 中的模式匹配
这是一个获取文件名不同部分的示例,
bash-3.2$ pathandfile=/tmp/ff.txt
bash-3.2$ filename=$(basename $pathandfile)
bash-3.2$ echo $filename
ff.txt
bash-3.2$ echo ${filename##*.}
txt
bash-3.2$ echo ${filename%.*}
ff
我想知道模式中的 ## 和 % 是什么意思。模式匹配是如何工作的?
谢谢和问候!
Here is an example to get different parts of a filename
bash-3.2$ pathandfile=/tmp/ff.txt
bash-3.2$ filename=$(basename $pathandfile)
bash-3.2$ echo $filename
ff.txt
bash-3.2$ echo ${filename##*.}
txt
bash-3.2$ echo ${filename%.*}
ff
I was wondering what does ## and % mean in the patterns. How is the patten matching working?
Thanks and regards!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
bash
的联机帮助页显示:The manpage for
bash
says:来自 http://tldp.org/LDP/abs/html/string-manipulation .html:
和
From http://tldp.org/LDP/abs/html/string-manipulation.html:
and
请参阅http://tldp.org/LDP/abs/html/string-manipulation .html。
See http://tldp.org/LDP/abs/html/string-manipulation.html.