gpt4 book ai didi

bash - 在 bash 中,如何使用参数替换获取没有最终扩展名的文件名?

转载 作者:行者123 更新时间:2023-12-04 05:24:32 25 4
gpt4 key购买 nike

我正在遍历所有 *.info目录中的文件,并检查是否有对应的 *.gz文件(如果没有,删除 .info 文件)。但要做到这一点,我需要去掉 .info关闭 $file .我在 bash 中摆弄参数替换但似乎没有任何效果。我可以很容易地获得扩展(如下面的代码所示),但不是除了扩展之外的所有内容。我尝试了各种我认为可能有效的方法;没有。

for file in *.info; do
gz_file="${file:(-4)}" # wrong... what is right?
# gz_file=`echo "$file" | sed -e 's/.info//'` # easy alternative I'm trying to avoid
if [[ ! -f "${gz_file}" ]]; then
rm "${file}"
fi
done

我意识到这可以通过 sed 轻松完成。 ,如注释掉的行所示,但如果可能的话,我想使用 bash 中内置的变量操作功能来完成它,因为我认为弄清楚如何让它以这种方式工作会很方便.

最佳答案

你试了吗${file%.*} ?
这应该删除扩展。

关于bash - 在 bash 中,如何使用参数替换获取没有最终扩展名的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13352911/

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