awk statement to eliminate the duplicates


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk statement to eliminate the duplicates
# 15  
Old 01-04-2012
thanks but i forgot to mention one more criteria... if the file has two procedures(that is one is duplicate) it should take second procedure... but if the file has only one procedure(that is no duplicate) then the command should do nothing.... so this is why i need redirection to same file instead of writing to a new file and then renaming it... because for the above command if the file has no duplicate(only one procedure is present) then the diff_temp will be blank and inturn diff will be blank after renaming..
# 16  
Old 01-04-2012
You can try:
Code:
n=`grep -c $proc_name1 file`
n=$(($n - 1))

awk 'toupper($1)=="DELIMITER" && f{f=0;next} $3 ~ v && ++c==n{f=1}!f' n=$n v="$proc_name1" diff > diff_temp

mv diff_temp diff

This User Gave Thanks to Franklin52 For This Post:
# 17  
Old 01-04-2012
thanks the idea works... only if the counter n is 2 or more then perfrom the awk else no need.. thanks :-)
# 18  
Old 01-04-2012
Another way :
Code:
SqlIn=${1:-./vivek.sql}
SqlWrk=${SqlIn}.wrk

awk -F'[[:space:](]+' '
    /CREATE[[:space:]]+PROCEDURE[[:space:]]+/ {
        Name = $3;
        if (! (Name in Names)) Procs[++ProcCount] = Name;
        Names[Name]++
    }
    Name {
        Def = Def $0 "\n";
    }
    tolower($1)=="delimiter" {
        ProcDef[Name] = Def;
        Name = Def = "";
        next;
    }
    END {
        for (i=1; i<=ProcCount; i++) printf "%s", ProcDef[Procs[i]];
    }
' ${SqlIn} > ${SqlWrk} && mv ${SqlWrk} ${SqlIn} || rm -f ${SqlWrk}

Input file (vivek.sql) :
Code:
CREATE PROCEDURE after100DeleteTgr(id int)
BEGIN
END
$$
Delimiter ;
CREATE PROCEDURE after100DeleteTgr(id int)
BEGIN
        insert into DeleteEvent(entityName, entityId) values ('PersonalContactNote', id) ;
END
$$
Delimiter ;
CREATE PROCEDURE otherProc(id int)
BEGIN
END
$$
Delimiter ;
CREATE PROCEDURE after100DeleteTgr(id int)
BEGIN
        insert into DeleteEvent(entityName, entityId, entityFlag) values ('PersonalContactNote', id, 'confirmed') ;
END
$$
Delimiter ;

output file (vivek.sql) :
Code:
CREATE PROCEDURE after100DeleteTgr(id int)
BEGIN
        insert into DeleteEvent(entityName, entityId, entityFlag) values ('PersonalContactNote', id, 'confirmed') ;
END
$$
Delimiter ;
CREATE PROCEDURE otherProc(id int)
BEGIN
END
$$
Delimiter ;

Jean-Pierre.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk and seen to report duplicates

I have this file: @Muestra-1 agctgcgagctgcgacccgggttatataggaagagacacacacaccccc + !@$#%^&*()@^#&HH!&*(@&#*(FT^%$&*()*&^%@ @Muestra-2 agctgcgagctgcgacccgggttatataggaagagacacacacaccccc + !@$#%^&*()@^#&HH!&*(@&#*(FT^%$&*()*&^%@ @Muestra-3 agctgcgagctgcgacccgggttatataggaagagacacacacaccccc +... (4 Replies)
Discussion started by: Xterra
4 Replies

2. Shell Programming and Scripting

awk - Remove duplicates during array build

Greetings Experts, Issue: Within awk script, remove the duplicate occurrences that are space (1 single space character) separated Description: I am processing 2 files using awk and during processing, I am building an array and there are duplicates on this; how can I delete the duplicates... (3 Replies)
Discussion started by: chill3chee
3 Replies

3. Shell Programming and Scripting

Convert Update statement into Insert statement in UNIX using awk, sed....

Hi folks, I have a scenario to convert the update statements into insert statements using shell script (awk, sed...) or in database using regex. I have a bunch of update statements with all columns in a file which I need to convert into insert statements. UPDATE TABLE_A SET COL1=1 WHERE... (0 Replies)
Discussion started by: dev123
0 Replies

4. Shell Programming and Scripting

awk remove first duplicates

Hi All, I have searched many threads for possible close solution. But I was unable to get simlar scenario. I would like to print all duplicate based on 3rd column except the first occurance. Also would like to print if it is single entry(non-duplicate). i/P file 12 NIL ABD LON 11 NIL ABC... (6 Replies)
Discussion started by: sybadm
6 Replies

5. Shell Programming and Scripting

Awk: Remove Duplicates

I have the following code for removing duplicate records based on fields in inputfile file & moves the duplicate records in duplicates file(1st Awk) & in 2nd awk i fetch the non duplicate entries in inputfile to tmp file and use move to update the original file. Requirement: Can both the awk... (4 Replies)
Discussion started by: siramitsharma
4 Replies

6. Shell Programming and Scripting

Creating duplicates in awk

Hi, I am using Ubuntu 12.04 I have a file as following: KHO123 KHO245 KHO456 . . .I want to add a second column of characters to my file but I want to write a script to make this automatic, so, depending on the number of the lines in my first column, I get the string I need repeated... (4 Replies)
Discussion started by: Homa
4 Replies

7. Shell Programming and Scripting

Find duplicates in column 1 and merge their lines (awk?)

Hi, I have a file (sorted by sort) with 8 tab delimited columns. The first column contains duplicated fields and I need to merge all these identical lines. My input file: comp100002 aaa bbb ccc ddd eee fff ggg comp100003 aba aba aba aba aba aba aba comp100003 fff fff fff fff fff fff fff... (5 Replies)
Discussion started by: falcox
5 Replies

8. Shell Programming and Scripting

Awk Help - duplicates in $1 that match x & y in $2

I'm primarily a "Windows" systems administrator whose been getting his toes in the Linux waters. I am new to programming and advanced scripting so please bear with me and my incomplete example below. I have exported all entries from our DNS zones. I used sed to remove everything other than the... (3 Replies)
Discussion started by: Omaplata
3 Replies

9. Shell Programming and Scripting

Awk to find duplicates in 2nd field

I want to find duplicates in file on 2nd field i wrote this code: nawk '{a++} END{for i in a {if (a>1) print}}' temp Could not find whats wrong with this. Appreciate help (5 Replies)
Discussion started by: pinnacle
5 Replies

10. Shell Programming and Scripting

How to eliminate inf value in AWK

Hi, I have the calculations which return me infinity (inf), -inf, other very larger number when I printed them out. I did try to insert some control condition not to print these out if the above condition is met. The code I implemented is something like:- for (i=0;i<=1000;i++){ ... (3 Replies)
Discussion started by: ahjiefreak
3 Replies
Login or Register to Ask a Question