toupper or tolower case of first letter of the line depending on another file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting toupper or tolower case of first letter of the line depending on another file
# 1  
Old 12-29-2011
toupper or tolower case of first letter of the line depending on another file

Hi

I would like to read if the first letter of a line in a first file (gauche.txt) is uppercase or lowercase, and change consequently the first letter of the corresponding line in the second file (droiteInit.txt).
I have done this but it won't work (I launch this using gawk -f ./awk_lowercasesUppercases gauche.txt )


Code:
# initialize strings 
BEGIN { upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
        lower = "abcdefghijklmnopqrstuvwxyz"; 
        fichierLinenumberLower="LinenumberLower.txt"; 
        fichierLinenumberUpper="LinenumberUpper.txt";
        fichierdroite="droite.txt";
        linenumber = 1;
        NR==FNR; 
} 
 
# for each input line 
{ 
    # get first character of first word 
    FIRSTCHAR = substr($1, 1, 1); 
 
    # if lower get position of FIRSTCHAR in lowercase array; if 0, ignore 
    if (CHAR = index(lower, FIRSTCHAR)){  
#print linenumber > fichierLinenumberLower;
            {next}
            {
            FIRSTCHARdroite = substr($1, 1, 1);
#print FIRSTCHARdroite
#print toupper(FIRSTCHARdroite)
            sub(/^./,toupper(FIRSTCHARdroite),$0);
            print $0;
            } 
        }
         
    # if upper get position of FIRSTCHAR in uppercase array; if 0, ignore 
    if (CHAR = index(upper, FIRSTCHAR)){
            {next}
            { 
#print linenumber > fichierLinenumberLower;
            FIRSTCHARdroite = substr($1, 1, 1);
#print FIRSTCHARdroite
#print tolower(FIRSTCHARdroite)
            sub(/^./,tolower(FIRSTCHARdroite),$0);
            print $0; 
            } 
        } 
 
    linenumber=linenumber+1; 
}

Can you help me please?
Thanks

Last edited by louisJ; 12-29-2011 at 05:35 PM..
# 2  
Old 12-29-2011
Hi louisJ,

Can you paste part of file 'gauche.txt', the incorrect ouput you get and the correct output you except? or the error in case of a incorrect syntax of your 'awk' program?

Regards,
Birei
# 3  
Old 12-29-2011
FWIW - some versions of awk support tolower() and toupper() natively.
Check your documentation.
# 4  
Old 12-30-2011
Gawk supports toupper and tolower, I checked.

gauche.txt looks like this:
Code:
Sized to 
Durable, midweight,
ultraviolet protection
quick flo

DroiteInit.txt:
Code:
Dimensionné 
nylon durable 
Indice de Protection 
séchant flo

The result should be like this:
Code:
Dimensionné 
Nylon durable 
indice de Protection 
séchant flo

I want to obtain the same capitalization in the resulting file than in gauche.txt.
# 5  
Old 12-30-2011
If you want to go on with awk:
Code:
awk 'NR==FNR{a=substr($0,1,1);b[FNR]=match(a,/[A-Z]/) ? 1 : 0;next}
{c=substr($0,1,1);c=b[FNR] ? toupper(c):tolower(c);print c""substr($0,2)}'  gauche.txt DroiteInit.txt
Dimensionné 
Nylon durable 
indice de Protection 
séchant flo

This User Gave Thanks to Klashxx For This Post:
# 6  
Old 12-30-2011
Beautiful, thank you Klashxx
# 7  
Old 12-30-2011
Quote:
Originally Posted by Klashxx
If you want to go on with awk:
Code:
awk 'NR==FNR{a=substr($0,1,1);b[FNR]=match(a,/[A-Z]/) ? 1 : 0;next}
{c=substr($0,1,1);c=b[FNR] ? toupper(c):tolower(c);print c""substr($0,2)}'  gauche.txt DroiteInit.txt

This doesn't work, every first letter ouputs in uppercase....I talked too fast!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace specific letter in a file by other letter

Good afternoon all, I want to ask how to change some letter in my file with other letter in spesific line eg. data.txt 1 1 1 0 0 0 0 for example i want to change the 4th line with character 1. How could I do it by SED or AWK. I have tried to run this code but actually did not... (3 Replies)
Discussion started by: weslyarfan
3 Replies

2. Shell Programming and Scripting

Change first letter of a word from lower case to upper case

Hi all, I am trying to find a way to change first letter in a word from lower case to upper case. It should be done for each first word in text or in paragraph, and also for each word after punctuation like . ; : ! ?I found the following command sed -i 's/\s*./\U&\E/g' $@ filenamebut... (7 Replies)
Discussion started by: georgi58
7 Replies

3. Shell Programming and Scripting

Upper case letter match

Hi, im able to search for string in a file (ex: grep -w "$a" input.txt). but i have to search for the uppercase of a string in a file where upper case of the file content matches something like below. where upper("$a")== converted to upper case string in (input.txt) can someone please provide... (5 Replies)
Discussion started by: p_satyambabu
5 Replies

4. UNIX for Dummies Questions & Answers

Awk Help - toupper/tolower

Hi, I am learning awk and faced few queries. Kindly suggest on the same. Where it is wrong. $ awk '{if (toupper($1) ~ /a/) print $0}' inv $ awk '{if (toupper($1) ~ /A/) print $0}' inv -- Why this output Jan 13 25 15 115 Mar 15 24 34 228 Apr 31 52 63 420 May 16 34 29 208... (6 Replies)
Discussion started by: vanand420
6 Replies

5. Shell Programming and Scripting

Help with finding last line of file: if statement depending on that line.

Good morning, My first time actually posting in this forum, though I have used this forum to help with numerous projects. I am trying to figure out why my if statement does not work. I have a file where a line is inputted every 15 seconds. I want this if statement to check what the last line... (3 Replies)
Discussion started by: Shanrunt
3 Replies

6. Shell Programming and Scripting

Check input for lenght, special characters and letter case

I made menu script for users so they can run other script without going in shell just from menu. But i must control their input. These are criteria: Input must have 4 signs First two signs are always lower case letters Input shall not have some special signs just letters and numbers ... (1 Reply)
Discussion started by: waso
1 Replies

7. Shell Programming and Scripting

HOWTO - change letter case of variable value

Hi I have e.g. VAR1=january and I need to change it into VAR1=January. How to change value of VAR1 variable to always set first character uppercase and other lowercase ? thx for help. (9 Replies)
Discussion started by: presul
9 Replies

8. Shell Programming and Scripting

Convert to upper case first letter of each word in column 2

Hi guys, I have a file separated by ",". I´m trying to change to upper case the first letter of each word in column 2 to establish a standard format on this column. I hope somebody could help me to complete the SED or AWK script below. The file looks like this: (Some lines in column 2... (16 Replies)
Discussion started by: cgkmal
16 Replies

9. UNIX for Dummies Questions & Answers

How to add a space after an Upper case letter

Hi I have two questions. 1. how to convert "EverythingIsFine" to "Everything Is Fine" in a txt file. 2. how to convert everything to upper case letter and reverse, I hope there is a general purpose script for this. (1 Reply)
Discussion started by: onthetopo
1 Replies

10. Shell Programming and Scripting

Covert case of first letter only

Using sed or tr, how do I change "fred" into "Fred" or "fReD" into "Fred" (1 Reply)
Discussion started by: tisons
1 Replies
Login or Register to Ask a Question