To remove leading and trailing whitespace from a subset of strings in a shell we can use sed.
$ echo ' #FOO# ' | sed -e 's/\s*$//' -e 's/^\s*//' #FOO#
Function 'trim'
To reuse it in another place, it is good idea to wrap it as a function.
# Function to trim leading and trailing spaces
trim() {
# Accept input from argument or STDIN
# So you can do both:
# $ echo ' #FOO# ' | trim
# or
# $ trim ' #FOO# '
local STRING=$( [ ! -z "$1" ] && echo $1 || cat ; )
echo "$STRING" | sed -e 's/^\s*//' -e 's/\s*$//'
}
Now it can be used to trim a string both from argument or standard input.
$ echo ' #FOO# ' | trim #FOO# $ trim ' #FOO# ' #FOO#