Build a command-line tool to automate the renaming of multiple files in a directory.
Goal
The goal is to create a versatile and user-friendly CLI tool that helps users efficiently rename files in bulk. By integrating regex functionality, users can match and modify filenames based on patterns.
Features
Directory Input: User can specify a directory containing the files to be renamed.
Regex-Based Renaming: Rename files using regular expressions to match specific patterns (e.g., changing "file_001.txt" to "document_001.txt").
Sequential Numbering: Rename files by appending or prepending sequential numbers (e.g., "image1.jpg", "image2.jpg").
File Type Filtering: Option to rename files only of certain types (e.g., only .txt or .jpg files).
Preview Changes: Display a preview of the renaming process before confirming changes.
Undo/Redo: Option to undo the renaming operation in case of mistakes.
Extra Feature (Optional)
Customizable Numbering: Allow users to define the starting number, padding (e.g., "001"), and increment for selected files.
Case Conversion: Automatically convert filenames to upper or lowercase during renaming (e.g., "MyFile.txt" to "myfile.txt").
Useful Rust Crates
regex: For pattern matching and replacing file names based on regex rules.
clap: For parsing command-line arguments to specify directory, etc.
walkdir: To recursively traverse directories and find files for renaming.
Description
Build a command-line tool to automate the renaming of multiple files in a directory.
Goal
The goal is to create a versatile and user-friendly CLI tool that helps users efficiently rename files in bulk. By integrating regex functionality, users can match and modify filenames based on patterns.
Features
Extra Feature (Optional)
Useful Rust Crates
regex: For pattern matching and replacing file names based on regex rules. clap: For parsing command-line arguments to specify directory, etc. walkdir: To recursively traverse directories and find files for renaming.