bashsed

How to remove all white spaces from a given text file?


I want to remove all the white spaces from a given text file. Is there any shell command available for this? Use sed perhaps?

I tried this : cat hello.txt | sed 's/ //g'

But it removes only spaces, not tabs.


Solution

  • $ man tr
    NAME
        tr - translate or delete characters
    
    SYNOPSIS
        tr [OPTION]... SET1 [SET2]
    
    DESCRIPTION
       Translate, squeeze, and/or delete characters from standard 
       input, writing to standard output.
    

    In order to wipe all whitespace including newlines you can try:

    cat file.txt | tr -d " \t\n\r" 
    

    You can also use the character classes defined by tr (credits to htompkins comment):

    cat file.txt | tr -d "[:space:]"
    

    For example, in order to wipe just horizontal white space:

    cat file.txt | tr -d "[:blank:]"