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


Message #8 received at 13295 <at> debbugs.gnu.org (full text, mbox):

From: Erik Auerswald <auerswal <at> unix-ag.uni-kl.de>
To: rkillen <at> frk.com, 13295 <at> debbugs.gnu.org
Subject: Re: bug#13295: Possible bug - tr utility
Date: Sat, 29 Dec 2012 00:46:51 +0100
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




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.