Regular Expression Case Sensitivity

Thomas Mondoshawan Tate plug-discuss@lists.PLUG.phoenix.az.us
Tue, 4 Dec 2001 14:12:45 -0700


--uAKRQypu60I7Lcqm
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Dec 04, 2001 at 11:54:44AM -0800, Simper, Brian D wrote:
>=20
> Try this in an empty directory and let me know if this is a bug or a feat=
ure
> or an error on my part.
>=20
> Create several files of upper and lower case names:
>=20
> 	touch aaaa
> 	touch AAAA
> 	touch bbbb
> 	touch BBBB
> 	touch 1234
> 	touch .abcd
>=20
> Now use a regular expression to delete all files starting with a lower ca=
se
> letter:
>=20
> 	rm [a-z]*

What you're asking it to do in regexp speak is remove all files that start
with ZERO or more lowercase a-z characters, this would provide the desired
result, if the shell used regexp. Bash, however, does not -- the [a-z] will
match the first beginning character, and the * will fill in the rest.
Running Bash 2.05.0(1)-release, this command will delete only the aaaa and
bbbb files. Note that the .abcd file is untouched. The reason for this is
because it starts with a single "." character, not a lowercase letter.
(Additionally, any file that begins with a single "." character is
considered to be a "hidden" file in the *NIX world -- to see them in an ls
command, append -a to the command line)

> When I was experimenting with this all of the files starting with *any*
> alphabetic character were deleted.  This was unexpected and I'm not sure =
if
> I am misinterpreting the regular expression or if I am delusional.  Let me
> know what you get.  FYI, I am using Red Hat Linux 7.2 so I would be
> interested if it's just me.

Which version of Bash are you running? (echo $BASH_VERSION)
It might be a bug related to the older v1.xx versions of the shell -- IIRC,
RedHat still installs v1.xx as the default shell, though I may be mistaken
since I've not touched RH since v6.2.

--=20
Thomas "Mondoshawan" Tate
phoenix@psy.ed.asu.edu
http://tank.dyndns.org

--uAKRQypu60I7Lcqm
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE8DTxNYp5mUsPGjjwRAlITAKCIpXeLGaV2nIqRMkobgzM4O3JcTQCgttR7
fmNiutzOZtF1XgevQVG1A8E=
=NNdG
-----END PGP SIGNATURE-----

--uAKRQypu60I7Lcqm--