[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