【发布时间】:2016-04-29 08:38:23
【问题描述】:
我有一个以 .zip 结尾的文件名,我只想要没有 zip 的文件名。在这里我发现了一个 bash 的技巧。
$f="05 - Means-End Analysis Videos.zip"
$echo "${f%*.zip}"
05 - Means-End Analysis Videos
这里发生了什么? %*.zip 怎么会删除我的扩展程序?
【问题讨论】:
-
另外,
*是多余的(在单个%之后使用时总是不匹配)。 -
请注意,
%字符在 bash 中的另一种用法是,如果像vim这样的程序被ctrl-z挂起,那么%vim命令会恢复它,比如fg。 -
正如another comment 中已经指出的那样,
*没有多大意义。 sn -p"${f%*.zip}"表示保留f的内容,但删除最后出现的.zip。 * ~ * ~ * 所以在"05 - Means-End Analysis Videos.zip"中简单地剪掉.zip得到"05 - Means-End Analysis Videos"。
标签: bash