首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何删除shell脚本中文件名的扩展名?

如何删除shell脚本中文件名的扩展名?
EN

Stack Overflow用户
提问于 2012-08-28 12:06:05
回答 10查看 332.7K关注 0票数 202

下面的代码有什么问题?

代码语言:javascript
复制
name='$filename | cut -f1 -d'.''

按原样,我得到了文字字符串$filename | cut -f1 -d'.',但是如果我去掉引号,我什么也得不到。同时,输入

代码语言:javascript
复制
"test.exe" | cut -f1 -d'.'

在shell中给出了我想要的输出,test。我已经知道$filename已经被分配了正确的值。我想要做的是将不带扩展名的文件名分配给一个变量。

EN

回答 10

Stack Overflow用户

发布于 2015-05-03 05:49:18

如果您知道扩展名,则可以使用basename

代码语言:javascript
复制
$ basename /home/jsmith/base.wiki .wiki
base
票数 155
EN

Stack Overflow用户

发布于 2015-09-15 19:31:43

如果您的文件名包含一个点(而不是扩展名的点),则使用以下命令:

代码语言:javascript
复制
echo $filename | rev | cut -f 2- -d '.' | rev
票数 34
EN

Stack Overflow用户

发布于 2016-04-26 21:13:35

代码语言:javascript
复制
file1=/tmp/main.one.two.sh
t=$(basename "$file1")                        # output is main.one.two.sh
name=$(echo "$file1" | sed -e 's/\.[^.]*$//') # output is /tmp/main.one.two
name=$(echo "$t" | sed -e 's/\.[^.]*$//')     # output is main.one.two

你想用什么就用哪一个。在这里,我假设文本后面的最后一个. (点)是扩展名。

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12152626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档