How do I trim lines read from standard input on bash?
$ trim () { read -r line; echo "$line"; }$ echo " aa bb cc " | trimaa bb cc$ a=$(echo " aa bb cc " | trim)$ echo "..$a.."..aa bb cc..
To make it work for multi-line input, just add a while
loop:
trim () { while read -r line; do echo "$line"; done; }
Using sed
with only one substitution:
sed 's/^\s*\(.*[^ \t]\)\(\s\+\)*$/\1/'