Remove part of the file using a condition


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Remove part of the file using a condition
# 1  
Old 02-09-2017
Remove part of the file using a condition

Gents,

Is there the chance to remove part of the file,

Taking in consideration this condition.

For each record the first row start with the string
Code:
 % VE


should be 56 rows for each records..
Code:
first row = % VE


Code:
last row = % sw


total 56 rows for each record.

Then in the case that the record have less than 56 lines, I would like to delele complete information for that record...

input
Code:
% VE
% No
% SL
% SN
% SI
% St
% Fl
% Ds
% Sw
% Sw
% Sw
% Dr
% Gp 10001
% GN 20001
% GN
% GP
% PT
% TB
% QC
% Ti
% EX
%   
%   
%Tim
0.5 
1.0 
1.5 
2.0 
2.5 
3.0 
3.5 
4.0 
4.5 
5.0 
5.5 
6.0 
6.5 
7.0 
7.5 
8.0 
8.5 
9.0 
9.5 
10.0
10.5
11.0
11.5
12.0
% ti
% pa
% pa
% ti
% ti
% ti
% ti
% sw

% VE
% No
% SL
% SN
% SI
% St
% Fl
% Ds
% Sw
% Sw
% Sw
% Dr
% Gp 30001
% GN 20001
% GN
% GP
% PT
% TB
% QC
% Ti
% EX
%   
%   
%Tim
0.5 
1.0 
1.5 
2.0 
2.5 
3.0 
3.5 
4.0 
11.5
12.0
% ti
% pa
% pa
% ti
% ti
% ti
% ti
% sw

% VE
% No
% SL
% SN
% SI
% St
% Fl
% Ds
% Sw
% Sw
% Sw
% Dr
% Gp 2001
% GN 1001
% GN
% GP
% PT
% TB
% QC
% Ti
% EX
%   
%   
%Tim
0.5 
1.0 
1.5 
2.0 
2.5 
3.0 
3.5 
4.0 
4.5 
5.0 
5.5 
6.0 
6.5 
7.0 
7.5 
8.0 
8.5 
9.0 
9.5 
10.0
10.5
11.0
11.5
12.0
% ti
% pa
% pa
% ti
% ti
% ti
% ti
% sw

Output desired

Code:
% VE
% No
% SL
% SN
% SI
% St
% Fl
% Ds
% Sw
% Sw
% Sw
% Dr
% Gp 10001
% GN 20001
% GN
% GP
% PT
% TB
% QC
% Ti
% EX
%   
%   
%Tim
0.5 
1.0 
1.5 
2.0 
2.5 
3.0 
3.5 
4.0 
4.5 
5.0 
5.5 
6.0 
6.5 
7.0 
7.5 
8.0 
8.5 
9.0 
9.5 
10.0
10.5
11.0
11.5
12.0
% ti
% pa
% pa
% ti
% ti
% ti
% ti
% sw

% VE
% No
% SL
% SN
% SI
% St
% Fl
% Ds
% Sw
% Sw
% Sw
% Dr
% Gp 2001
% GN 1001
% GN
% GP
% PT
% TB
% QC
% Ti
% EX
%   
%   
%Tim
0.5 
1.0 
1.5 
2.0 
2.5 
3.0 
3.5 
4.0 
4.5 
5.0 
5.5 
6.0 
6.5 
7.0 
7.5 
8.0 
8.5 
9.0 
9.5 
10.0
10.5
11.0
11.5
12.0
% ti
% pa
% pa
% ti
% ti
% ti
% ti
% sw

Thanks for your help
# 2  
Old 02-09-2017
Try:
Code:
awk 'NF==56' FS='\n' RS= ORS='\n\n' file

This should work if there are empty lines between the records, like in your sample.
This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 02-09-2017
Dear Scrutinizer
It works fine.. thanks a lot.
Is there the option to get the data removed in separate file..
Thanks again
# 4  
Old 02-09-2017
Hi jiam912, you are welcome. Try something like :
Code:
awk 'NF!=56{print>(FILENAME ".faulty")}1' FS='\n' RS= ORS='\n\n' file

This User Gave Thanks to Scrutinizer For This Post:
# 5  
Old 02-09-2017
Dear Scrutinizer,

It works, thanks a lot.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How do I take out(remove) the date part in the file name in a script?

Hi All, I need to create links between two directories. have multiple files in a specified location. Source Location ex: /opt/xdm/input/ Target Location ex: /opt/xdm input file names: 1. abc_app.aus.apac.yyyymmdd.dtd 2. abcd_app.aus.apac.yyyymmdd.dtd I need to build a code that reads... (1 Reply)
Discussion started by: kthri_82
1 Replies

2. Shell Programming and Scripting

How to remove the date part of the file?

Hi Gurus, I have file name like: abcd.20131005.dat I need to remove mid part of data final name should be abcd.dat thanks in advance (2 Replies)
Discussion started by: ken6503
2 Replies

3. Shell Programming and Scripting

Remove part of a file based on identifiers

here below is a part of the file cat fileName.txt NAME=APP-VA-va_mediaservices-113009-VA_MS_MEDIA_SERVER_NOT_PRESENT-S FIXED=false DATE= 2013-02-19 03:46:04.4 PRIORITY=HIGH RESOURCE NAME=ccm113 NAME=APP-DS-ds_ha-140020-databaseReplicationFailure-S FIXED=false DATE= 2013-02-19... (4 Replies)
Discussion started by: vivek d r
4 Replies

4. UNIX for Dummies Questions & Answers

[Solved] Rename file name / remove part of name

I have a whole file structure with jpeg files where I want to remove a part of the file name. An application added in many files a case conflict in the naming "xyz 017.jpg (Case Conflict 1)" So, can someone help me how to get rid of the " (Case Conflict 1)"? What I have is this: find . -name... (2 Replies)
Discussion started by: borobudur
2 Replies

5. UNIX for Dummies Questions & Answers

Remove part of file name with sed & mv

Ok, so I have bunch of files that are named "orange__file_name.asm" and I want to batch rename them to "file_name.asm" I know that using "ls | sed s/orange__//" will get rid of the part of the file name I do not want. But how do I combine that with the mv command to actually do it? Thanks JG (5 Replies)
Discussion started by: john galt
5 Replies

6. Shell Programming and Scripting

Remove part of a column in a text file

I have a text file with delimiter "|" and sometimes the zipcode is in "5th" column or "6th" column. I want to scan the file and remove the "-2323" from the zipcode which has zip+4 digits From blah|blah|foo|bar||blah|945523-232|USA blah|blah|foo|bar||blah|foo|94555-2323|USA To... (8 Replies)
Discussion started by: gubbu
8 Replies

7. UNIX and Linux Applications

how to get a part of file pertaining to a condition

A log file contains details for last one year .This file contains log for all dates . The log file for a particular day starts with a particular string and ends with the same string . We need to make a new file out of this existing file containing data after a particular date. (2 Replies)
Discussion started by: chaitanyassk
2 Replies

8. Shell Programming and Scripting

Remove part of the file

I have an xml file, from where I need to take out Application2 entries and keep the others. I need to remove from <product> to </product> and the key element to look for while removing should be <application> as other pairs can be same for others. <product> ... (10 Replies)
Discussion started by: chiru_h
10 Replies

9. Shell Programming and Scripting

remove certain part of file name

Hi, Is it possible to remove the first part of the file name using find. i.e i have something like 2006abc.txt , 1007bed.txt etc, I wanna rename them to abc.txt , bed.txt I tried some stupid way.. find . -name '*.txt' -exec mv {} `cut -f2-5 -d"_" {}` \; somehow iam not getting it. ... (3 Replies)
Discussion started by: braindrain
3 Replies

10. HP-UX

How do I take out(remove) the date part in the file name?

Hi Guys here I am again, I have two files in a specified location. Location ex: /opt/xdm/input/ input file names: 1. abc_app.yyyymmdd.dtd 2. abd_app.yyyymmdd.dtd I need to build a code that reads the files from the location based on the oldest date and cuts the date part... (5 Replies)
Discussion started by: ruthless
5 Replies
Login or Register to Ask a Question