Dart & Flutter Packages by DevCetra.com & contributors.
A command-line tool to perform bulk replacement of file names, folder names, and file contents within a specified directory.
- The script scans the specified directory recursively and finds all files and folders.
- It replaces the occurrences of the
replace
pattern with thewith
pattern in the file contents, file names, and folder names. - The script supports using capture groups in the replacement pattern using double curly braces
{{}}
.
dart pub global activate df_bulk_replace
dart pub global deactivate df_bulk_replace
# Basic replacment.
bulkreplace --input test --replace "foo" --with "bar"
bulkreplace -i test -r "bar" -w "foo"
bulkreplace -i test -r "replace_me" -w "vervang_my"
bulkreplace -i test -r "vervang_my" -w "replace_me" # change back
bulkreplace -i test -r "replace_me" -w "vervang_my" && bulkreplace -i test -r "vervang_my" -w "replace_me"
# Using handlebars.
bulkreplace -i test -r "replace_me_(\\w)_(\\w)_(\\w)" -w "replace_me_{{2}}_{{1}}_{{0}}" --no-file-names --no-folder-names
# Whitelisting or blacklisting files.
bulkreplace -i test -r "foo" -w "bar" --blacklisted-files "blacklist_me_1.txt, blacklist_me_2.txt"
bulkreplace -i test -r "foo" -w "bar" --whitelisted-files "whitelist_me_1.txt, whitelist_me_2.txt"
# Whitelisting or blacklisting folders.
bulkreplace -i test -r "foo" -w "bar" --blacklisted-folders "_blacklist_me" -v
bulkreplace -i test -r "foo" -w "bar" --whitelisted-folders "_whitelist_me" -v
# For those familiar with RegExp, you can use regular expressions and capture groups.
bulkreplace --i . --replace "my_project_template(.*)" --with "hello_world{{1}}"
Prints help: -h or --help
Specifies the directory to search in: -i or --input
Specifies the regex pattern to replace: -r or --replace
Specifies the replacement string: -w or --with
Enables verbose output: -v or --verbose
Runs the program in dry-run mode (no files will be renamed): --dry-run
Specifies whether to replace file names or not. Default is true: -f or --file-names
Specifies whether to replace folder names or not. Default is true: -d or --folder-names
Specifies whether to replace file content or not. Default is true: -c or --content
Specifies whether to replace content in binary files or not. Default is false: -b or --binary-content
Include file name patterns to whitelist. Separate multiple patterns with commas: --whitelisted-files
Include file name patterns to blacklist. Separate multiple patterns with commas: --blacklisted-files
Specifies whether to add the default file whitelist or not. Default is true: --default-whitelisted-files
Specifies whether to add the default file blacklist or not. Default is true: --default-blacklisted-files
Include folder name patterns to whitelist. Separate multiple patterns with commas: --whitelisted-folders
Include folder name patterns to blacklist. Separate multiple patterns with commas: --blacklisted-folders
This is an open-source project, and we warmly welcome contributions from everyone, regardless of experience level. Whether you're a seasoned developer or just starting out, contributing to this project is a fantastic way to learn, share your knowledge, and make a meaningful impact on the community.
- Buy me a coffee: If you'd like to support the project financially, consider buying me a coffee. Your support helps cover the costs of development and keeps the project growing.
- Share your ideas: Every perspective matters, and your ideas can spark innovation.
- Report bugs: Help us identify and fix issues to make the project more robust.
- Suggest improvements or new features: Your ideas can help shape the future of the project.
- Help clarify documentation: Good documentation is key to accessibility. You can make it easier for others to get started by improving or expanding our documentation.
- Write articles: Share your knowledge by writing tutorials, guides, or blog posts about your experiences with the project. It's a great way to contribute and help others learn.
No matter how you choose to contribute, your involvement is greatly appreciated and valued!
📧 Email Robert Mollentze at [email protected]
If you're enjoying this package and find it valuable, consider showing your appreciation with a small donation. Every bit helps in supporting future development. You can donate here:
https://www.buymeacoffee.com/robmllze
This project is released under the MIT License. See LICENSE for more information.