Skip to content

Instantly share code, notes, and snippets.

@loranger
Forked from dpaluy/git.sh
Created January 19, 2014 12:43
Show Gist options
  • Save loranger/8504389 to your computer and use it in GitHub Desktop.
Save loranger/8504389 to your computer and use it in GitHub Desktop.
# Git repository-specific solution
# Source: http://unix.stackexchange.com/questions/36233/how-to-skip-file-in-sed-if-it-contains-regex/36240#36240
git grep -I --name-only -z -e '' | xargs -0 sed -i -e 's/[ \t]\+\(\r\?\)$/\1/'
find . -not \( -name .svn -prune -o -name .git -prune \) -type f -print0 | xargs -0 sed -i '' -E "s/[[:space:]]*$//"
# Generic solution which checks that the MIME type starts with text/:
while IFS= read -r -d '' -u 9
do
if [[ "$(file -bs --mime-type -- "$REPLY")" = text/* ]]
then
sed -i -e 's/[ \t]\+\(\r\?\)$/\1/' -- "$REPLY"
else
echo "Skipping $REPLY" >&2
fi
done 9< <(find . -type f -print0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment