How to remove extra spaces in bash? How to remove extra spaces in bash? bash bash

How to remove extra spaces in bash?


Try this:

echo "$HEAD" | tr -s " "

or maybe you want to save it in a variable:

NEWHEAD=$(echo "$HEAD" | tr -s " ")

Update

To remove leading and trailing whitespaces, do this:

NEWHEAD=$(echo "$HEAD" | tr -s " ")NEWHEAD=${NEWHEAD%% }NEWHEAD=${NEWHEAD## }


Using awk:

$ echo "$HEAD" | awk '$1=$1'how to remove extra spaces


Take advantage of the word-splitting effects of not quoting your variable

$ HEAD="    how to  remove    extra        spaces                     "$ set -- $HEAD$ HEAD=$*$ echo ">>>$HEAD<<<">>>how to remove extra spaces<<<

If you don't want to use the positional paramaters, use an array

ary=($HEAD)HEAD=${ary[@]}echo "$HEAD"

One dangerous side-effect of not quoting is that filename expansion will be in play. So turn it off first, and re-enable it after:

$ set -f$ set -- $HEAD$ set +f