helm/bin/replace
2017-12-06 01:39:10 -05:00

28 lines
461 B
Bash
Executable file

#!/usr/bin/env bash
set -e
unset CDPATH
# Find and replace by a given list of files.
#
# replace foo bar **/*.rb
main() {
local search="$1"
local replace="$2"
shift 2
for item in $(ag -l --nocolor "$search" "$@"); do
sed -i "s%${search//%/\\%}%${replace//%/\\%}%g" "$item"
done
}
# Show matches
ag "$1"
# Are you sure?
read -rp "Confirm search+replace? (y/n)?" choice
case $choice in
y|Y) main "$@" ;;
*) >&2 echo "Aborted"; exit ;;
esac