Search code examples
sedwhitespace

How to replace whitespace with one blank using sed?


Using sed "s/[[:blank:]]*/ /g" a>b doesn't seem to work.


Solution

  • You need to change the asterisk to a plus sign:

    sed "s/[[:blank:]]\+/ /g" a>b
    

    or use an alternative that means the same thing:

    sed "s/[[:blank:]][[:blank:]]*/ /g" a>b
    

    or

    sed "s/[[:blank:]]\{1,\}/ /g" a>b
    

    Also, it's more helpful to post error messages or precise ways that behavior differs from expectations since "doesn't seem to work" conveys very little information.