Skip to content

Instantly share code, notes, and snippets.

@jmbrunskill
Created May 17, 2024 00:31
Show Gist options
  • Save jmbrunskill/632e373c17934811beec9a38b4379af2 to your computer and use it in GitHub Desktop.
Save jmbrunskill/632e373c17934811beec9a38b4379af2 to your computer and use it in GitHub Desktop.
Multi Search and Replace
#!/bin/bash
echo "Updating Files"
FILE_LIST=`find . -type f | grep -E "\.(rs|ts|tsx)$" | grep -v node_modules | grep -v target`
REPLACEMENTS_LIST=("s/Equipment/AssetItem/g s/equipment/asset_item/g" )
echo "Replacing:"
for REPLACEMENT in ${REPLACEMENTS_LIST[@]}
do
echo $REPLACEMENT
done
echo "In these files:"
for FILE in $FILE_LIST
do
echo $FILE
done
read -p "Continue (y/n)?" choice
case "$choice" in
y|Y ) echo "yes";;
* ) exit;;
esac
for FILE in $FILE_LIST
do
echo $FILE
cp $FILE $FILE.bak
for REPLACEMENT in ${REPLACEMENTS_LIST[@]}
do
echo $REPLACEMENT
sed -i '' $REPLACEMENT $FILE
done
done
read -p "Delete .bak files (y/n)?" choice
case "$choice" in
y|Y ) echo "yes";;
* ) exit;;
esac
for FILE in $FILE_LIST
do
echo $FILE
rm $FILE.bak
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment