我想根据文件名的开始和结束来选择文件。我写了下面的代码,但我的代码仍然有问题,它没有打印任何内容。
详细信息:我下面的脚本应该循环遍历目录$path中的文件,并检查文件名是否以(${t}或X${t}开头,以".bz2"结尾(从存储库中移除文件。
t="T"
for f1 in $path/*; do
if [[ ("$f1" == "${t}"* || "$f1" == "X${t}"*) && ("${f1: -4}" == ".bz2")]]; then
echo "IM here to remove files"
fi
在我的$path中,我有以下文件:XT&20220202ffffff.bz2,T&2022020mmmmmm.bz2,LMMMM.bz2
输入是$path中的文件,输出是删除文件。
您既不需要for
循环,也不需要[[...]]
条件构造。你所需要的只是模式匹配:
t="T"
echo rm "$path"/{X,}"$t"*.bz2
如果输出看起来正常,则丢弃echo
。