# Preview a Bulk File Rename

Preview old-to-new filename mappings with find/replace, regex, numbering, case conversion, prefix/suffix, and collision warnings.

## Run it

- **CLI:** `gizza tool bulk-file-renamer "IMG_001.JPG
IMG_002.JPG
My Report File.txt"`
- **Web:** https://gizza.ai/tools/bulk-file-renamer/
- **Agents:** machine-readable descriptor (parameters JSON Schema) at https://gizza.ai/tools/bulk-file-renamer/tool.json

## Inputs

- `filenames` — Filenames (one per line) _(field)_
- `mode` — Rename rule _(field)_
- `find` — Find / regex pattern _(field)_
- `replace` — Replacement _(field)_
- `case_type` — Case style _(field)_
- `pattern` — Sequential pattern _(field)_
- `start` — Start number _(field)_
- `padding` — Number padding _(field)_
- `prefix` — Prefix _(field)_
- `suffix` — Suffix _(field)_
- `preserve_extension` — Preserve file extensions _(field)_

## Output

- Rename mapping (text)

## Query parameters

Open the tool pre-filled and auto-run via URL:

- `filenames` — Filenames (one per line)
- `mode` — Rename rule
- `find` — Find / regex pattern
- `replace` — Replacement
- `case_type` — Case style
- `pattern` — Sequential pattern
- `start` — Start number
- `padding` — Number padding
- `prefix` — Prefix
- `suffix` — Suffix
- `preserve_extension` — Preserve file extensions

Example: `https://gizza.ai/tools/bulk-file-renamer/?filenames=IMG_001.JPG%0AIMG_002.JPG%0AMy%20Report%20File.txt&mode=find_replace&find=IMG&replace=photo&case_type=lower&pattern=file-%7Bn%7D&start=1&padding=3&prefix=2026_&suffix=_final&preserve_extension=true`

---

## About this tool

Paste a list of filenames and preview the exact rename mapping before you run a shell script or desktop batch rename. The output is plain `old -> new` lines, with a collision warning when multiple inputs would produce the same target name.

The tool supports four deterministic rules:

- Find and replace on the filename stem.
- Regex replacement with capture groups such as `$1`.
- Sequential numbering with `{n}`, `{name}`, and `{ext}` tokens.
- Case conversion to lower, upper, title, snake, kebab, camel, or pascal case.

Example:

```text
IMG_001.JPG
IMG_002.JPG
```

With find `IMG` and replacement `photo`, the mapping becomes:

```text
IMG_001.JPG -> photo_001.JPG
IMG_002.JPG -> photo_002.JPG
```

Limits and edge cases:

- This is a safe preview engine: it never renames local files, uploads a ZIP, or writes an archive.
- Extension preservation is on by default, so transforms apply to the stem and keep `.jpg`, `.pdf`, and similar suffixes.
- `archive.tar.gz` preserves only the final `.gz` extension; `.gitignore` is treated as a dotfile with no extension.
- Padding is capped at 20 digits, and blank filename lines are ignored.

## FAQ

<details>
<summary>Does this actually rename my files?</summary>

No. It only computes a mapping so you can review the result safely. Use the mapping in your file manager or automation script after checking for mistakes and collisions.

</details>

<details>
<summary>How do regex replacements work?</summary>

Choose regex mode, put the regular expression in the find field, and use capture references such as `$1` in the replacement field. Invalid regular expressions produce an error instead of a partial mapping.

</details>

<details>
<summary>How do I make photo_001.jpg, photo_002.jpg, and so on?</summary>

Choose sequential numbering, set the pattern to `photo_{n}`, start at `1`, set padding to `3`, and leave extension preservation enabled.

</details>

<details>
<summary>What happens if two files map to the same new name?</summary>

The output still shows every mapping, then adds a collision warning so you can adjust the rule before applying it elsewhere.

</details>

## Related tools

- [Extract Action Items from Meeting Notes](https://gizza.ai/tools/action-item-extractor/): Extract action items, owners, and decisions from meeting notes or daily notes with deterministic rules. Markdown checklist or JSON, private in-browser.
- [Amazon Order Analyzer](https://gizza.ai/tools/amazon-order-analyzer/): Paste an Amazon order-history CSV export to summarize total spend by month, top items, and category breakdowns. Browser-only, private, with Markdown or JSON output.
- [Base Decoder](https://gizza.ai/tools/base-decoder/): Auto-detect and decode Base16, Base32, Base45, Base58, Base64, and Base85 text, including nested layers, locally in your browser.
- [Budget Planner](https://gizza.ai/tools/budget-planner/): Plan a monthly budget from take-home pay: 50/30/20 needs/wants/savings targets with custom splits, or a zero-based plan showing what's left to allocate.
- [Calendar Free/Busy Overlap](https://gizza.ai/tools/calendar-freebusy-overlap/): Paste two .ics calendars and list the time slots where both are free — working hours, minimum meeting length, timezones and DST handled. Free and in-browser.
