gpt4 book ai didi

bash - 仅从文件名中删除最后一个扩展名

转载 作者:行者123 更新时间:2023-12-03 22:58:27 27 4
gpt4 key购买 nike

我的文件名看起来与此类似

name_1.23.ps.png

或者
name_1.23.ps.best

或者
name_1.23.ps

我想去掉最后的随机文件扩展名,只剩下
name_1.23.ps

与此类似的其他问题使用“.”作为分隔符,但这会删除 name_1 之后的所有内容。

我想在命令行上执行此操作(在 tcsh 或 bash 中)

最佳答案

检查它是否适合您的要求:

sed

sed 's/\.[^.]*$//'

grep
grep -Po '.*(?=\.)'

测试:
kent$  cat f
name_1.23.ps.png
name_1.23.ps.best
name_1.23.ps
name_1.23.ps

#sed:
kent$ sed 's/\.[^.]*$//' f
name_1.23.ps
name_1.23.ps
name_1.23
name_1.23

#grep
kent$ grep -Po '.*(?=\.)' f
name_1.23.ps
name_1.23.ps
name_1.23
name_1.23

编辑 从评论。我觉得这将是新的要求:

grep
kent$  grep -o '.*\.ps' f                                                                                         
name_1.23.ps
name_1.23.ps
name_1.23.ps
name_1.23.ps

sed
kent$  sed 's/\(.*\.ps\)\..*/\1/' f
name_1.23.ps
name_1.23.ps
name_1.23.ps
name_1.23.ps

关于bash - 仅从文件名中删除最后一个扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18251070/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com