gpt4 book ai didi

狂欢;删除一组后缀中的任何一个

转载 作者:行者123 更新时间:2023-11-29 09:49:10 26 4
gpt4 key购买 nike

OSX Snow Leopard 上的 Bash 脚本,我想删除一组文件后缀中的任何一个,但我的 googlefu 失败了。

给定

file="filename_1"
file1=${file%_1}
echo $file1
filename

然而,在剥离中引入模式列表的任何变化都让我失败了,例如:

shopt -s extglob
file1=${file/@(%_1|%_end)/}
echo $file1
filename_1

我试过将模式列表放在一个变量中,使用括号或不使用,引号或不使用。我要得出结论,尾随字符串的替换和修剪不采用模式列表——或者我遗漏了一些相当明显的东西。感谢您就优雅的解决方案或我可能遗漏的模式列表提出的建议。

最佳答案

你只是语法有点错误:${file%@(_1|_end)}

$ printf "%s\n" filename_1 filename_2 filename_end | 
while read file; do echo ${file%@(_1|_end)}; done
filename
filename_2
filename

http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion

关于狂欢;删除一组后缀中的任何一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9888133/

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