You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于文件格式与中间后缀过滤并删除文件的Bash脚本实现

Bash脚本:按格式与中间后缀筛选并删除压缩文件

匹配逻辑说明

针对你给出的.gz压缩文件结构,筛选规则如下:

  • 当midfix为空时:匹配无中间后缀的目标格式文件,即[文件名].[格式].gz(如file1.txt.gz)
  • 当指定midfix时:匹配包含指定中间后缀的目标格式文件,即[文件名].[midfix].[格式].gz(如file2.abc.txt.gz)

示例代码

# 1. 配置参数:根据需求修改
PARENT_DIR="parent_dir"  # 父目录路径
FORMAT="txt"             # 目标格式(如txt、csv)
MIDFIX=""                # 中间后缀,空值表示无中间后缀,可改为"abc"、"xyz"等

# 2. 根据参数构造匹配模式
if [ -z "$MIDFIX" ]; then
  # 无中间后缀的匹配规则
  PATTERN="*.$FORMAT.gz"
else
  # 带指定中间后缀的匹配规则
  PATTERN="*.$MIDFIX.$FORMAT.gz"
fi

# 3. 先预览匹配到的文件(安全操作:先确认再删除)
echo "=== 匹配到的文件列表 ==="
find "$PARENT_DIR" -type f -name "$PATTERN"

# 4. 执行删除操作(带确认提示,避免误删)
read -p "是否删除以上文件?(输入y/Y确认,其他取消): " CONFIRM
if [[ "$CONFIRM" =~ ^[Yy]$ ]]; then
  find "$PARENT_DIR" -type f -name "$PATTERN" -delete
  echo "删除完成"
else
  echo "已取消删除操作"
fi

具体场景测试

  • 当FORMAT="txt"且MIDFIX=""时,会匹配并删除parent_dir/subdir0/subdir1/file1.txt.gz
  • 当FORMAT="txt"且MIDFIX="abc"时,会匹配并删除parent_dir/subdir0/subdir1/file2.abc.txt.gz
  • 当FORMAT="csv"且MIDFIX="xyz"时,会匹配并删除parent_dir/subdir0/subdir1/file3.xyz.csv.gz

内容的提问来源于stack exchange,提问作者piks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 17:12:40