Programming languages provide the ability to remove special characters from a string quite easily.
Sometimes you need to also do this from your command-line using Bash.
Let’s say we have a bash variable called USER_EMAIL
and we want to remove any periods, underscores, dashes and the @
symbol, how would we go about this?
We could pipe our variable to a useful command called tr
(which is the translate or delete characters
tool) and strip these specifics before pushing the output back to a new bash variable.
USER_EMAIL="[email protected]"
NEW_USER_EMAIL=`echo $USER_EMAIL | tr -dc '[:alnum:]\n\r' | tr '[:upper:]' '[:lower:]'`
echo $NEW_USER_EMAIL
# yournameexamplecom
This is really powerful and pretty simple actually.
What about if you want to get rid of characters like \r \n
or ^C
from a variable?
OUT_VARIABLE=echo $IN_VARIABLE | tr -d '[:cntrl:]'
Your solution comes in the form of another -d
or -delete
argument called [:cntrl:]
.