Visit Our UNIX and Linux User Community


Removing a block of duplicate lines from a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Removing a block of duplicate lines from a file
# 1  
Old 12-13-2012
Removing a block of duplicate lines from a file

Hi all,

I have a file with the data

Code:
1  abc
2  123
3  ;
4  rao
5  bell
6  ;
7  call
8  abc
9  123
10 ;
11 rao
12 bell
13 ;

I want remove the lines from 8 to 13 which are the repetion of the lines 1 to 6.

When i use the below command, one of semicolon (Smilie in the first 6 lines is also getting deleted which shouldn't.

Code:
sort myfile | uniq

But I need an ouput as
Code:
 
abc
2 123
3 ;
4 rao
5 bell
6 ;
7 call

Please help me with this..

Thanks alot!!

Regards,
Sreenivas
# 2  
Old 12-13-2012
I don't understand the requirements. Do you want to remove all lines from a file that duplicate the contents of field 2 of the first six lines of your input file? Why do we need to remove field 1 of the first line in the file, but keep field 1 in the other six lines that are kept? Since field 2 in the third line in the file is a duplicate of field 2 in the sixth, tenth, and thirteenth lines of the input file, why shouldn't they all be removed?
# 3  
Old 12-13-2012
Hi Don,

Sorry for the confusion.

Field 1 refers the line numbers. I just kept those for referring lines. Please treat that only field 2 is there in the actual file.

I want to remove a block of lines from 8 to 13, which are the duplicate of the lines 1 to 6.

From lines 1 to 6 ; got repeated twice. That should be kept as it is.

Finally my output should look like:

Code:
1 abc
2 123
3 ;
4 rao
5 bell
6 ;
7 call

# 4  
Old 12-13-2012
Quote:
Originally Posted by raosr020
From lines 1 to 6 ; got repeated twice. That should be kept as it is.

Code:
1 abc
2 123
3 ;
4 rao
5 bell
6 ;
7 call

Is there any special condition for ";"..? Please explain..

Code:
awk '!X[$2]++ || $2 ~ ";"' file
1  abc
2  123
3  ;
4  rao
5  bell
6  ;
7  call
10 ;
13 ;

And if you want to keep first two occurrences of ";" then use..

Code:
awk '!X[$2]++ || ( $2 ~ ";" && ++a < 2 )' file

1  abc
2  123
3  ;
4  rao
5  bell
6  ;
7  call


Last edited by pamu; 12-13-2012 at 09:50 AM.. Reason: added more info
# 5  
Old 12-13-2012
If you just want to remove line 8 to 13 then you can try this

Code:
sed '8,13d' filename

# 6  
Old 12-13-2012
The requirements still aren't clear.

Are you always only concerned about matching the first six lines, or are you trying to find the first set of n ilnes that are duplicated later in the file?

If the chosen lines at the start of the file are duplicated multiple times, do you only want to remove the first set of duplicated lines or do you want to remove every set of duplicated lines?
# 7  
Old 12-13-2012
try:
Code:
awk '{sub("^[0-9]* *",""); b=b $0 " "} /;/ {for (i in a) sub(a[i],"",b); a[b]=b;
if (b) { i=split(b,o); for (j=1; j<=i; j++) print ++c, o[j]; }
}' infile


Last edited by rdrtx1; 12-13-2012 at 01:11 PM..

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Removing duplicate lines on first column based with pipe delimiter

Hi, I have tried to remove dublicate lines based on first column with pipe delimiter . but i ma not able to get some uniqu lines Command : sort -t'|' -nuk1 file.txt Input : 38376KZ|09/25/15|1.057 38376KZ|09/25/15|1.057 02006YB|09/25/15|0.859 12593PS|09/25/15|2.803... (2 Replies)
Discussion started by: parithi06
2 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 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. UNIX for Dummies Questions & Answers

Removing duplicate lines ignore case

hi, I have the following input in file: abc ab a AB b c a C B When I use uniq -u file,the out put file is: abc ab AB c v B C (17 Replies)
Discussion started by: hellsd
17 Replies

Featured Tech Videos