Skip to content

Instantly share code, notes, and snippets.

@frangio
Last active February 8, 2024 19:56
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save frangio/462d5563d88a2982b6c23e6d2e72e93c to your computer and use it in GitHub Desktop.
Save frangio/462d5563d88a2982b6c23e6d2e72e93c to your computer and use it in GitHub Desktop.
ripsed: use ripgrep as a sed replacement. requires sponge from moreutils
#!/usr/bin/env bash
set -o errexit -o pipefail
if [ "$#" -eq 0 ]
then
echo "usage: rs PATTERN REPLACEMENT [PATH...]" > /dev/stderr
exit 1
fi
pattern="$1"
replacement="$2"
shift 2
paths=("$@")
rg -l "$pattern" "${paths[@]}" | while IFS=$'\n' read -r file; do
rg --passthru "$pattern" --replace "$replacement" "$file" | sponge "$file"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment