Shell里的“魔术符号”,操控文件名与后缀

那年的夏天,王大神坐在阳光下,手中拿着一本厚厚的编程手册。这不是他的第一次与编程的邂逅,但每次深入探究,都有新的发现。他目光停留在Shell脚本的章节,那些繁复的命令和特殊符号仿佛是魔法的咒语,只等着被他召唤。

Shell里的“魔术符号”,操控文件名与后缀

A picture of an old wizard with a long beard, holding a magical wand, symbolizing the power of shell scripting.

Shell,简单而不简约

“有时候,为了一个小任务,确实没必要引入Python这样的大炮。”王大神自言自语,他意识到Shell本身就拥有着强大的能力。对于文件名和后缀名的处理,Shell提供了一些简洁而强大的方法。

${[#%]}:操控文件名的“魔术符号”

假设你遇到了这样的文件名:file.tar.gz

想要获取它的后缀名,你可以用以下命令:

f=file.tar.gz
echo ${f##*.}

输出是:gz

而获取前缀,只需:

echo ${f%%.*}

输出是:file

这就像魔术一样,几乎不费吹灰之力。

如果文件路径稍显复杂,比如:file=/dir1/dir2/dir3/my.file.txt,Shell也能轻松应对。这需要借助以下的命令:

${file#*/}:dir1/dir2/dir3/my.file.txt
${file##*/}:my.file.txt
${file#*.}:file.txt
${file##*.}:txt
${file%/*}:/dir1/dir2/dir3
${file%%/*}:空值
${file%.*}:/dir1/dir2/dir3/my.file
${file%%.*}:/dir1/dir2/dir3/my

如此看来,#% 就像魔术师的手中的魔杖,左右摆弄,轻松得到想要的结果。

记忆的小技巧

对于初学者来说,这些符号可能有些晦涩。但王大神有一套记忆的小技巧:

  • # 去掉左边(键盘上 # 的左边,从左向右删)
  • % 去掉右边(键盘上 % 的右边,从右向左删)

再加上单一符号代表最小匹配,而两个符号则代表最大匹配,记忆起来就更加方便了。

终章

回想起当年对编程的热爱,王大神深感自己的选择是多么的正确。Shell的学习,不仅仅是技术的探索,更是对知识的渴望和对完美的追求。

编程,就像生活中的魔法,只要你掌握了它,就能创造无数的奇迹。

声明:本站所有文章,如无特殊说明或标注,均为本站(王大神)原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
指数词

被“技术生疏”攻击的程序员,和他的Hexo复兴计划

2023-10-8 18:29:20

指数词

如何选择适合自己的记账工具?

2023-10-8 23:11:34

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索