GNU bug report logs - #13295
Possible bug - tr utility

Previous Next

Package: coreutils;

Reported by: "Killen, Randy" <rkillen <at> frk.com>

Date: Fri, 28 Dec 2012 19:18:02 UTC

Severity: normal

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: "Killen, Randy" <rkillen <at> frk.com>
To: Erik Auerswald <auerswal <at> unix-ag.uni-kl.de>, "13295 <at> debbugs.gnu.org" <13295 <at> debbugs.gnu.org>
Subject: bug#13295: Possible bug - tr utility
Date: Fri, 28 Dec 2012 23:48:58 +0000
Thanks Erik. That does help.

Randy

-----Original Message-----
From: Erik Auerswald [mailto:auerswal <at> unix-ag.uni-kl.de] 
Sent: Friday, December 28, 2012 3:47 PM
To: Killen, Randy; 13295 <at> 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.





This bug report was last modified 12 years and 151 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.