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

if [ "$#" -lt 2 ]; then
    echo "用法: $0 <檔案> <欲刪除字串1> [欲刪除字串2 ...]" >&2
    exit 1
fi

file=$1
shift

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

# 建立備份
cp "$file" "$file.bak"

# 建立 pattern 暫存檔
patfile=$(mktemp)
trap 'rm -f "$patfile"' EXIT

# 將參數2~n 一行一個寫入暫存檔
printf '%s\n' "$@" > "$patfile"

# -f patfile：從檔案讀取多個 pattern
# -F：純文字比對
grep -vF -f "$patfile" "$file" > "${file}.tmp"
mv "${file}.tmp" "$file"

