#!/usr/bin/env bash
set -euo pipefail

if [ "$#" -lt 2 ]; then
    echo "用法: $0 <檔案> <world_id1> [world_id2 ...]" >&2
    exit 1
fi

file=$1
shift

if [ ! -f "$file" ]; then
    echo "找不到檔案: $file" >&2
    exit 1
fi

# 雙備份：
# - <file>.bak       最新一次跑前的版本（兼容舊行為）
# - <file>.bak.<TS>  含時間戳的多版本歷史（不被覆蓋）
TS=$(date +%Y%m%d_%H%M%S)
cp "$file" "$file.bak"
cp "$file" "$file.bak.$TS"

# 把 world_id 列表組合成 ERE alternation
# 比對 mrtg key 命名 [<prefix>_<world_id>] — 例如 [world_mem_1024]
# 用 _<id>] 邊界精確比對，不會撞行內 print $6/1024 之類子字串
ids_alt=$(printf '%s\n' "$@" | paste -sd '|' -)
pattern="_(${ids_alt})\\]"

grep -vE "$pattern" "$file" > "${file}.tmp"
mv "${file}.tmp" "$file"
