helm/bin/sedall
2018-01-24 00:56:36 -05:00

28 lines
462 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 -ir "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