Change Uppercase to Lowercase with some exceptions


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Change Uppercase to Lowercase with some exceptions
# 1  
Old 06-09-2010
Change Uppercase to Lowercase with some exceptions

I need to change instances of uppercase to lowercase. The change occurs only when all of the characters are capital letters.
For instance, if the following was contained in the file:
Code:
THE BRIGHT DAY

it should be:
Code:
the bright day

However:
Code:
The BRIGHT day

should remain the same.

Also, if it were something like:
Code:
JOHN JONES M.D.

it should be:
Code:
john jones M.D.

Any simple ideas?
(I'm very much a beginner at Unix)

Last edited by Yogesh Sawant; 06-10-2010 at 04:32 AM.. Reason: added code tags
# 2  
Old 06-09-2010
you would have to codify - write a list of the rules - in order for somebody to help you.
It looks to me like there are lots of them, and having them all out there makes coding simpler.
# 3  
Old 06-10-2010
1. If every character in a line is uppercase, the characters in this line need to be converted to lower case.
2. The only instance where this won't happen is if there is punctuation between characters; in this case, the uppercase letters will be changed to lower case aside from the words containing punctuation.

So, with the examples again....
(Text from file) ---> (What the text should look like)
A SUNNY DAY ---> a sunny day
A SUNNY DAy ---> A SUNNY DAy
A sunny DAY ---> A sunny DAY
A SUNNY D.AY ---> a sunny D.AY
A SUNNY DAY. ---> a sunny DAY.
a SUNNY D.AY ---> a SUNNY D.AY
# 4  
Old 06-10-2010
The first if statement checks if all 3 columns from a row contain uppercase A-Z only.
The second statement checks if the first two columns from a row contain uppercase A-Z only AND if the third column contains a dot.

Code:
#!/usr/local/bin/perl

use strict;
use warnings;

my $infile='sunny.dat';

open(I,$infile) or die "Error: $! \n";
my @arr=<I>;
close(I);

foreach my $row (@arr) {
  chomp($row);

  my @rowele=split(/ /,$row);

   if ($rowele[0] =~ /^[A-Z]*$/ && $rowele[1] =~ /^[A-Z]*$/ && $rowele[2] =~ /^[A-Z]*$/) {

	$rowele[0] =~ tr/A-Z/a-z/;
        $rowele[1] =~ tr/A-Z/a-z/;
	$rowele[2] =~ tr/A-Z/a-z/;

 	print "$rowele[0] $rowele[1] $rowele[2] \n";
	next;
   }

   if ($rowele[0] =~ /^[A-Z]*$/ && $rowele[1] =~ /^[A-Z]*$/ && $rowele[2] =~ /[\.]/) {

	$rowele[0] =~ tr/A-Z/a-z/;
	$rowele[1] =~ tr/A-Z/a-z/;

 	print "$rowele[0] $rowele[1] $rowele[2] \n";
	next;
   }

   print "$rowele[0] $rowele[1] $rowele[2] \n";

}

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Uppercase to lowercase

Hello, I have a list of files in a directory whose names are all in uppercasse, including the file format for eg *.MP3 . I would like to convert these to the normal way we write it ie ABC.MP3 to be converted to Abc.mp3 . I know that this can be done manually by using a lot of "mv" or rename... (6 Replies)
Discussion started by: ajayram
6 Replies

2. Shell Programming and Scripting

Convert lowercase to uppercase

listprocs.sh contains ps -ef | grep "swikar" 1) Write a shell script to convert an input file to all upper case. Name your shell script toupper.sh. Hint: tr ' ' ' ' will convert all lower case letters to upper case To use your script, try the following command: cat... (1 Reply)
Discussion started by: swikar
1 Replies

3. UNIX for Dummies Questions & Answers

UPPERCASE to lowercase

Hi All, i have a file and i want to convert all uppercase letters to lowercase letters which are in my file. how can i do this. Thanx (3 Replies)
Discussion started by: temhem
3 Replies

4. UNIX Desktop Questions & Answers

Unix: lowercase to uppercase

I just started to learn unix... and i needed to make a basic script. i need to 1. read a file (.txt) 2. count the words of EVERY sentece 3. sentences with odd number of words need to be converted into lowercase sentences with even number of words need to be converted into uppercase ... (6 Replies)
Discussion started by: chilli1988
6 Replies

5. Shell Programming and Scripting

indentation and lowercase to uppercase

hi, i need to write a bash script that does two things. the program will take from the command line a file name, which is a C code, and an integer, which is the size of my indentation i would then have to indent every nested code by the number of columns provided by the user in the... (1 Reply)
Discussion started by: kratos.
1 Replies

6. UNIX for Dummies Questions & Answers

uppercase to lowercase

i have no variable and no file i just want to convert AJIT to ajit with some command in UNIX can anybody help (4 Replies)
Discussion started by: ajit.yadav83
4 Replies

7. AIX

Lowercase to Uppercase

Inside a script I have 2 variables COMP=cy and PT=t. further down the same script I require at the same line to call those 2 variables the first time uppercase and after lowercase ${COMP}${PT}ACE,${COMP}${PT}ace. Can somebody help me Thanks in advance George Govotsis (7 Replies)
Discussion started by: ggovotsis
7 Replies

8. Shell Programming and Scripting

UPPERCASE to lowercase with no overwriting?

Hey, I've just started learning shell script today. How would I write a bash script file that changes file names from uppercase to lowercase in that directory, the program should warn the user and NOT overwrite the existing file if it's already in lowercase? for example in a directory i... (1 Reply)
Discussion started by: lgd923
1 Replies

9. UNIX for Dummies Questions & Answers

Need to change filenames in a particular directory from lowercase to UPPERCASE

Hi, I need a shell script which changes a bunch of files in a particular directory from lowercase to UPPERCASE. I am not very familiar with shell scripts so a detailed explanation would be greatly appreciated!!!! Thanks ini advance! :) (7 Replies)
Discussion started by: Duke_Lukem
7 Replies

10. Shell Programming and Scripting

uppercase to lowercase

Greetings & Happy New Years To All! A client of mine FTP'ed their files up to the server and it all ended up being in UPPERCASE when it all should be in lowercase. Is there a builtin command or a script anyone knows of that will automagically convert all files to lowercase? Please advise asap... (4 Replies)
Discussion started by: webex
4 Replies
Login or Register to Ask a Question