bash script remove non-printable special characters/white space

In bash you test like this for problems that can be caused by non-printable characters since if you don't know how to identify it because it basically breaks your script.

echo "url=$url" should print something like this normally if you have properly formatted input/text:

url=::http://someaddress.com::

But if you have some weird hidden characters (not visible in a text editor of any sort you'll get something like this
::l=::http://someaddress.com

How come it doesn't print as expected?
There are hidden/non-printable characters, usually ASCII code I believe that cause unexpected behavior like above and wreaks havoc on many scripts/programs who didn't realize this since there are non-printable characters.

There is a program in Linux that takes care of it called "tr"
If I read data line by line using cat, I now use "tr" to filter all the non-printable characters (I use it line by line and not the entire file since this would remove things like linebreaks and then you have a text file that becomes a single line).

Here is how you'd fix a bad variable (one with non-printable/special characters):

url=`echo "$url"|tr -dc ‘[:print:]‘


Tags:

bash, printable, characters, spacein, echo, quot, url, formatted, input, text, http, someaddress, visible, ll, doesn, ascii, wreaks, havoc, scripts, programs, didn, linux, tr, filter, linebreaks, variable, dc, lsquo,

Latest Articles

  • How high can a Xeon CPU get?
  • bash fix PATH environment variable "command not found" solution
  • Ubuntu Linux Mint Debian Redhat Youtube Cannot Play HD or 4K videos, dropped frames or high CPU usage with Nvidia or AMD Driver
  • hostapd example configuration for high speed AC on 5GHz using WPA2
  • hostapd how to enable and use WPS to connect wireless devices like printers
  • Dell Server Workstation iDRAC Dead after Firmware Update Solution R720, R320, R730
  • Cloned VM/Server/Computer in Linux won't boot and goes to initramfs busybox Solution
  • How To Add Windows 7 8 10 11 to GRUB Boot List Dual Booting
  • How to configure OpenDKIM on Linux with Postfix and setup bind zonefile
  • Debian Ubuntu 10/11/12 Linux how to get tftpd-hpa server setup tutorial
  • efibootmgr: option requires an argument -- 'd' efibootmgr version 15 grub-install.real: error: efibootmgr failed to register the boot entry: Operation not permitted.
  • Apache Error Won't start SSL Cert Issue Solution Unable to configure verify locations for client authentication SSL Library Error: 151441510 error:0906D066:PEM routines:PEM_read_bio:bad end line SSL Library Error: 185090057 error:0B084009:x509 certif
  • Linux Debian Mint Ubuntu Bridge br0 gets random IP
  • redis requirements
  • How to kill a docker swarm
  • docker swarm silly issues
  • isc-dhcp-server dhcpd how to get longer lease
  • nvidia cannot resume from sleep Comm: nvidia-sleep.sh Tainted: Linux Ubuntu Mint Debian
  • zfs and LUKS how to recover in Linux
  • [error] (28)No space left on device: Cannot create SSLMutex Apache Solution Linux CentOS Ubuntu Debian Mint