Removing duplicate lines ignore case


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Removing duplicate lines ignore case
# 8  
Old 12-01-2004
Looking at this thread, hellsd, we are never going to get a solution as you haven't posted what output you expect to achieve.

Please post something along the lines of....

"my original file is
.
.
10 lines of input
.
.

I expect to get
.
.
10 lines of output
.
.
"

I cannot see exactly what you are trying to get?! Which algorithm are you trying to formulate (i.e. you say you want to keep the original case, but where you have KEVIN and kevin, and want only one of these case variations, which is the correct case variation you wish to keep), etc....

Cheers
ZB
# 9  
Old 12-01-2004
Ok. sorry, here you go

Input file:

line 1: David, password: ab4TkN
line 2: Kevin, password: kRq5
line 3: kevin, PASSWORD: kRq5
line 4: abcd
line 5: efgh
line 6: ABCD
line 7: efgh

Output file:
line 1: David, password: ab4TkN


Explaination:
This i s a part of the unix process I wrote. When I get a file that contain duplicate lines:
1. I need to present in another file(or in the same file) only the uniq lines as they appear in the original Input file

2. The uniq -u doesn't ignore case - So this is the main problem, I guess.

Thanks again and I hope my message is clear now.

roy.
# 10  
Old 12-01-2004
here u go .......

#!/usr/bin/ksh

cat file1 | tr -s " " | cut -d":" -f 2 | tr "[A-Z]" "[a-z]" | sort | uniq -u > file2

while read line
do
grep -i "$line" file1
done < file2
# 11  
Old 12-01-2004
Last time I hope...

I call to your script runIt
I replace file1 with $1

Now I run it:
runIt file1

Output:

I get file2 with the correct lines, but they are all in lowercase.

I look at the unix console and it prints the Original file1 content and then the correct result.

How can I get the correct output in a new file.

*I am running on solaris machine, tcsh.
Thanks
# 12  
Old 12-01-2004
runit file1 > file3
# 13  
Old 12-01-2004
See the change cut -d":" -f 2-



#!/usr/bin/ksh

cat $1 | tr -s " " | cut -d":" -f 2- | tr "[A-Z]" "[a-z]" | sort | uniq -u > file2

while read line
do
grep -i "$line" $1
done < file2
# 14  
Old 12-01-2004
Using awk to print only unique lines...

awk '{x=tolower($0);a[x]++;b[x]=$0}END{for(x in a)if(a[x]==1)print b[x]}' file1 > file2

Tested on the sample data...

David, password: ab4TkN
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Remove duplicate lines after ignoring case and spaces between

Oracle Linux 6.5 $ cat someStrings.txt GRANT select on MANHPRD.S_PROD_INT TO OR_PHIL; GRANT select on MANHPRD.S_PROD_INT TO OR_PHIL; GRANT select on SCOTT.emp to JOHN; grant select on scott.emp to john; grant select on scott.dept to hr;If you ignore the case and the empty space between the... (6 Replies)
Discussion started by: kraljic
6 Replies

2. Homework & Coursework Questions

Script: Removing HTML tags and duplicate lines

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: You will write a script that will remove all HTML tags from an HTML document and remove any consecutive... (3 Replies)
Discussion started by: tburns517
3 Replies

3. UNIX for Dummies Questions & Answers

Removing a set of Duplicate lines from a file

Hi, How do i remove a set of duplicate lines from a file. My file contains the lines: abc def ghi abc def ghi jkl mno pqr jkl mno (1 Reply)
Discussion started by: raosr020
1 Replies

4. Shell Programming and Scripting

Removing a block of duplicate lines from a file

Hi all, I have a file with the data 1 abc 2 123 3 ; 4 rao 5 bell 6 ; 7 call 8 abc 9 123 10 ; 11 rao 12 bell 13 ; (10 Replies)
Discussion started by: raosr020
10 Replies

5. Shell Programming and Scripting

removing duplicate lines while maintaing coherence with second file

So I have two files. The first file, file1.txt, has lines of numbers separated by commas. file1.txt 10,2,30,50 22,6,3,15,16,100 73,55 78,40,33,30,11 73,55 99,82,85 22,6,3,15,16,100 The second file, file2.txt, has sentences. file2.txt "the cat is fat" "I like eggs" "fish live in... (6 Replies)
Discussion started by: adrunknarwhal
6 Replies

6. Shell Programming and Scripting

Removing Duplicate Lines per Section

Hello, I am in need of removing duplicate lines from within a file per section. File: ABC1 012345 header ABC2 7890-000 ABC3 012345 Header Table ABC4 ABC5 593.0000 587.4800 ABC5 593.5000 587.6580 <= dup need to remove ABC5 593.5000 ... (5 Replies)
Discussion started by: petersf
5 Replies

7. Shell Programming and Scripting

Removing duplicates from string (not duplicate lines)

please help me in getting following: Input Desired output x="foo" foo x="foo foo" foo x="foo foo" foo x="foo abc foo" foo abc x="foo foo1 foo2" foo foo1 foo2 I need to remove duplicated from string.. (8 Replies)
Discussion started by: vickylife
8 Replies

8. Shell Programming and Scripting

removing the duplicate lines in a file

Hi, I need to concatenate three files in to one destination file.In this if some duplicate data occurs it should be deleted. eg: file1: ----- data1 value1 data2 value2 data3 value3 file2: ----- data1 value1 data4 value4 data5 value5 file3: ----- data1 value1 data4 value4 (3 Replies)
Discussion started by: Sharmila_P
3 Replies

9. Shell Programming and Scripting

removing duplicate blank lines

Hi, how to remove the blank lines from the file only If we have more than one blank line. thanks rameez (8 Replies)
Discussion started by: rameezrajas
8 Replies

10. UNIX for Dummies Questions & Answers

removing duplicate lines from a file

Hi, I am trying to remove duplicate lines from a file. For example the contents of example.txt is: this is a test 2342 this is a test 34343 this is a test 43434 and i want to remove the "this is a test" lines only and end up with the numbers in the file, that is, end up with: 2342... (4 Replies)
Discussion started by: ocelot
4 Replies
Login or Register to Ask a Question