加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 删除除文件扩展名外的所有内容

发布时间:2020-12-14 02:14:08 所属栏目:Linux 来源:网络整理
导读:参见英文答案 Extract filename and extension in Bash????????????????????????????????????36个 假设我有一个字符串: x=file.tar.sh 我知道除了最后的n个字符之外如何删除所有内容.像这样(除去最后3个字符的所有内容: ${x: -3} 但这对于具有不同后缀长度
参见英文答案 > Extract filename and extension in Bash????????????????????????????????????36个
假设我有一个字符串:

x=file.tar.sh

我知道除了最后的n个字符之外如何删除所有内容.像这样(除去最后3个字符的所有内容:

${x: -3}

但这对于具有不同后缀长度的文件不起作用. (len .tar!= len .sh)

我会通过删除所有内容直到最后一个点来解决这个问题.我试过这个:

${x##.}

这将删除最长的匹配,直到“.”但不知何故,它只是返回完整的字符串而不删除任何东西?

解决方法

试试这个:

x=file.tar.sh
echo ${x##*.}

这将打印sh

如果你想获得tar.sh,那么:

echo ${x#*.}

这里*匹配发生之前的任何字符集.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读