[ale] BASHing my head

Scott M. Jones eff at dragoncon.org
Thu Aug 27 17:43:09 EDT 2015


For the record I was not trying to parse the output of 'ls'.  I just
wanted to do 'rm [A-Z].pdf' and get the expected results, but I did a
sanity test first with 'ls' before hitting the trigger.  This used to be
obvious so I was trying to find out why I wasn't getting expected
results, and glad I checked before I rm'ed.

Ultimately it's a regex "problem" in bash and not an 'ls' problem.
Whoever though ASCII would become politically incorrect?

-Scott

On 8/27/15 4:01 PM, Scott Plante wrote:
> This link gives some examples of the trouble you can find when you parse ls:
> 
> http://mywiki.wooledge.org/ParsingLs
> 
> It doesn't mention it, but another good rule might be NEVER put newlines
> in your filenames!
> 
> 
> ------------------------------------------------------------------------
> *From: *"Jim Kinney" <jkinney at jimkinney.us>
> *To: *"Atlanta Linux Enthusiasts" <ale at ale.org>, "DJ-Pfulio"
> <DJPfulio at jdpfu.com>
> *Sent: *Thursday, August 27, 2015 6:56:46 AM
> *Subject: *Re: [ale] BASHing my head
> 
> I've not heard that but ls output can be a challenge. Parsing ls -A1 is fun.
> 
> On August 26, 2015 6:23:06 PM EDT, DJ-Pfulio <DJPfulio at jdpfu.com> wrote:
> 
>     I seem to recall being told to NEVER parse the output from ls - ever.
>     Maybe I misunderstood?
> 
>     On 08/26/2015 05:38 PM, Jim Kinney wrote:
> 
>         Yeah. What he said.
>         From my F22 bash-land (4.3.39):
>         touch a.pdf A.pdf b.pdf B.pdf c.pdf C.pdf z.pdf Z.pdf
>         [jkinney at dhcp061167 tmp]$ ls
>         a.pdf A.pdf b.pdf B.pdf c.pdf C.pdf z.pdf Z.pdf
>         [jkinney at dhcp061167 tmp]$ ls | grep "[A-Z].pdf"
>         A.pdf
>         B.pdf
>         C.pdf
>         Z.pdf
>         [jkinney at dhcp061167 tmp]$ ls | grep "[a-z].pdf"
>         a.pdf
>         b.pdf
>         c.pdf
>         z.pdf
>         On Wed, 2015-08-26 at 15:41 -0400, Ed Cashin wrote:
> 
>             I've been biting my tongue here. I don't think these
>             characteristics
>             of bash are congrue nt with UNIX philosophy. The people who
>             made UNIX
>             complain about bash being bloated. These characteristics of
>             bash are
>             congruent with POSIX philosophy.
> 
>             A UNIX-ish way of doing this would be ...
> 
>             ls | grep '^[A-Z].*\.pdf'
> 
> 
>             On Wed, Aug 26, 2015 at 1:41 PM, Jim Kinney
>             <jim.kinney at gmail.com>
>             wrote:
> 
>                 Wow! Shopt has enough options to make it stand next to
>                 emacs.
>                 I don't understand why the default is essentially case
>                 insensitive
>                 when everything else in bash is case sensitive. It looks
>                 like the
>                 LANG makes it work that way but that makes no sense
>                 either to me. A
>                 != a in standard US English.
>                 More of the secret mysteries of Unix philosophy I've
>                 never wrapped
>                 my head around.
>                 On Aug 26, 2015 12:16 PM, "Scott Plante"
>                 <splante at insightsys.com>
>                 wrote:
> 
>                     I didn't know the globasciiranges option.
> 
>                     Another solution is the LC_COLLATE variable:



More information about the Ale mailing list