I am trying to remove all spaces on a file without messing with line endings. This is to be run from inside a bash script.

I have tried all the solutions here: https://stackoverflow.com/questions/9953448/how-to-remove-all-white-spaces-from-a-given-text-file

They work from the command line but when I try them from the bash script the final file is a mess, completely destroyed.

File is using UNIX file endings.

Any clues?

2 Answers 2


You should be able to use tr, but not as specified on the page your link points to as that includes the removal of newline and carriage return. What you should do is:

tr -d " \t" < infile.txt > outfile.txt
  • I have tried that before without success. For some reason, worked now... thanks.
    – Duck
    Jul 7, 2014 at 18:52

You can pass the [[:blank:]] character class to tr to delete spaces and tabs but retain newlines

<file tr -d '[[:blank:]]'

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.