1851643 Members
3962 Online
104061 Solutions
New Discussion

Re: Check if lower case?

 
SOLVED
Go to solution
Sean OB_1
Honored Contributor

Check if lower case?

Can anyone show me a way to check if a filename has any lower case characters in it?

I need to check before trying to uppercase the name from within a script.

TIA and points for all responses.

Sean
6 REPLIES 6
Fred Ruffet
Honored Contributor
Solution

Re: Check if lower case?

In Shell :

/>Filename1=MYFILE
/>Filename2=MyFile
/>if [ $Filename1 = $(echo $Filename1 | tr "[a-z]" "[A-Z]") ]
> then echo no lowercase
> else echo lowercase
> fi
no lowercase
/>if [ $Filename2 = $(echo $Filename2 | tr "[a-z]" "[A-Z]") ]
> then echo no lowercase
> else echo lowercase
> fi
lowercase

Regards,

Fred
--

"Reality is just a point of view." (P. K. D.)
Muthukumar_5
Honored Contributor

Re: Check if lower case?

We can detect using regex pattern class of [[:lower:]]

A file name as TeST

echo TeST | grep "[[:lower:]]
or
echo TeST | grep -q "[[:lower:]]"
if [[ $? -eq 0 ]]; then
echo "it contains lower character"

we can rename a file as,

echo "mv TeST `echo Test | tr -s '[:lower:]' '[:upper:]'`" | sh

using tr command.

where TeST file changed to TEST
Easy to suggest when don't know about the problem!
Stefan Schulz
Honored Contributor

Re: Check if lower case?

Hi Sean,

i would use tr and compare two variables.

if [ $filename = $(echo $filename | tr '[:lower:]' '[:upper:]') ]
then
else
fi

Just a quick shot. Perhaps its worth a try.

Regards Stefan
No Mouse found. System halted. Press Mousebutton to continue.
Fred Ruffet
Honored Contributor

Re: Check if lower case?

in perl :

/>perl
while () {
print "lowercase\n" if $_=~ m/[a-z]/;
}
MYFILE
MyFile
lowercase

Regards,

Fred
--

"Reality is just a point of view." (P. K. D.)
A. Clay Stephenson
Acclaimed Contributor

Re: Check if lower case?

#!/usr/bin/sh

FNAMES="Boo cow MOM DAD You"

for FNAME=${FNAMES}
do
echo "${FNAME}" | grep -q -E '.*[a-z].*'
STAT=${?}
if [[ ${STAT} -eq 0 ]]
then
echo "Lowercase found"
fi
done
If it ain't broke, I can fix that.
Rodney Hills
Honored Contributor

Re: Check if lower case?

A simple way (within ksh)-

filename="ABcdEF"
typeset -u x=$filename
if [[ $filename != $x ]] ; then
echo "FILE HAS LOWERCASE IN IT!!"
fi

HTH

-- Rod Hills
There be dragons...