#!/bin/bash -e # Use grep and sed to replace $1 with $2 recursively and print what is done grep --null --recursive --files-with-matches \ --binary-files=without-match "--exclude-dir={$DIRS_IGNORE}" "$1" "${@:3}" | xargs -0 sed -i "\%${1}%{ s||${2}|g w /dev/stdout }"