Skip to content

Instantly share code, notes, and snippets.

@cwonrails
Forked from dpaluy/git.sh
Created October 27, 2016 13:14
Show Gist options
  • Select an option

  • Save cwonrails/ba976185b46bdfdffc771b1b8967c5c9 to your computer and use it in GitHub Desktop.

Select an option

Save cwonrails/ba976185b46bdfdffc771b1b8967c5c9 to your computer and use it in GitHub Desktop.
Remove trailing whitespace of all files recursively
# 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