bug#13295: Possible bug - tr utility
Closing the bug, then
bug#13295: Possible bug - tr utility
Hello - I encountered the situation shown below so thought that I would report it to see if it might be a bug or is expected behavior. Please let me know if you need additional information. Randy $ $ echo something | tr [:lower:] [:upper:] SOMETHING $ echo something | tr '[:lower:]' '[:upper:]' SOMETHING $ $ touch l $ echo something | tr [:lower:] [:upper:] tr: misaligned [:upper:] and/or [:lower:] construct $ echo something | tr '[:lower:]' '[:upper:]' SOMETHING $ rm l $ $ touch u $ echo something | tr [:lower:] [:upper:] tr: misaligned [:upper:] and/or [:lower:] construct $ echo something | tr '[:lower:]' '[:upper:]' SOMETHING $ rm u $ $ touch l $ touch u $ echo something | tr [:lower:] [:upper:] something $ echo something | tr '[:lower:]' '[:upper:]' SOMETHING $ rm l $ rm u $ $ $ uname -srvo Linux 2.6.18-274.18.1.0.1.el5 #1 SMP Thu Feb 9 19:07:16 EST 2012 GNU/Linux $ echo $SHELL /bin/bash $ Notice: All email and instant messages (including attachments) sent to or from Franklin Templeton Investments (FTI) personnel may be retained, monitored and/or reviewed by FTI and its agents, or authorized law enforcement personnel, without further notice or consent.
bug#13295: Possible bug - tr utility
Hi Randy, On 12/28/2012 06:37 PM, Killen, Randy wrote: Hello - I encountered the situation shown below so thought that I would report it to see if it might be a bug or is expected behavior. Please let me know if you need additional information. Randy $ $ echo something | tr [:lower:] [:upper:] SOMETHING $ echo something | tr '[:lower:]' '[:upper:]' SOMETHING $ $ touch l $ echo something | tr [:lower:] [:upper:] tr: misaligned [:upper:] and/or [:lower:] construct $ echo something | tr '[:lower:]' '[:upper:]' SOMETHING $ rm l $ $ touch u $ echo something | tr [:lower:] [:upper:] tr: misaligned [:upper:] and/or [:lower:] construct $ echo something | tr '[:lower:]' '[:upper:]' SOMETHING $ rm u $ $ touch l $ touch u $ echo something | tr [:lower:] [:upper:] something $ echo something | tr '[:lower:]' '[:upper:]' SOMETHING $ rm l $ rm u This is expected behavior, caused by lack of quoting that results in the shell (Bash) interpreting [...] as a wildcard pattern for file name globbing (see glob(7)). If the 'nullglob' option of the shell is disabled (use 'shopt nullglob' to display the current setting), a wildcard that matches no files is kept as is. Thus the wildcards [:lower:] and [:upper:] are either replaced by l resp. u if one of those files exist or kept, if no matching file exists. Quoting the special characters '[' and ']' by using '[:lower:]' resp. '[:upper:]' (including the quotes) inhibits the shell from interpreting them as file globbing wildcards. Therefore, you should always quote character classes that are meant as arguments to a program. HTH Erik
bug#13295: Possible bug - tr utility
Thanks Erik. That does help. Randy -Original Message- From: Erik Auerswald [mailto:auers...@unix-ag.uni-kl.de] Sent: Friday, December 28, 2012 3:47 PM To: Killen, Randy; 13...@debbugs.gnu.org Subject: Re: bug#13295: Possible bug - tr utility Hi Randy, On 12/28/2012 06:37 PM, Killen, Randy wrote: Hello - I encountered the situation shown below so thought that I would report it to see if it might be a bug or is expected behavior. Please let me know if you need additional information. Randy $ $ echo something | tr [:lower:] [:upper:] SOMETHING $ echo something | tr '[:lower:]' '[:upper:]' SOMETHING $ $ touch l $ echo something | tr [:lower:] [:upper:] tr: misaligned [:upper:] and/or [:lower:] construct $ echo something | tr '[:lower:]' '[:upper:]' SOMETHING $ rm l $ $ touch u $ echo something | tr [:lower:] [:upper:] tr: misaligned [:upper:] and/or [:lower:] construct $ echo something | tr '[:lower:]' '[:upper:]' SOMETHING $ rm u $ $ touch l $ touch u $ echo something | tr [:lower:] [:upper:] something $ echo something | tr '[:lower:]' '[:upper:]' SOMETHING $ rm l $ rm u This is expected behavior, caused by lack of quoting that results in the shell (Bash) interpreting [...] as a wildcard pattern for file name globbing (see glob(7)). If the 'nullglob' option of the shell is disabled (use 'shopt nullglob' to display the current setting), a wildcard that matches no files is kept as is. Thus the wildcards [:lower:] and [:upper:] are either replaced by l resp. u if one of those files exist or kept, if no matching file exists. Quoting the special characters '[' and ']' by using '[:lower:]' resp. '[:upper:]' (including the quotes) inhibits the shell from interpreting them as file globbing wildcards. Therefore, you should always quote character classes that are meant as arguments to a program. HTH Erik Notice: All email and instant messages (including attachments) sent to or from Franklin Templeton Investments (FTI) personnel may be retained, monitored and/or reviewed by FTI and its agents, or authorized law enforcement personnel, without further notice or consent.