sed or awk: delete n lines following a formfeed


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed or awk: delete n lines following a formfeed
# 1  
Old 11-16-2015
sed or awk: delete n lines following a formfeed

Hi Members,

This is my first post in this forum.
I want to do is match form feed lines one by one in a file and delete the next n lines (ex-3 lines) with the form feed character

Eg - Files looks like

Code:
Data 1
Data 2
Data 3
FF
Hdr1
Hdr2
Hdr3
Data4
Data5
FF
Hdr1
Hdr2
Hdr3
Data 6
Data 7

After the process file should be

Code:
Data 1
Data 2
Data 3
Data 4
Data 5
Data 6

Rgds
Yohan

Last edited by Scrutinizer; 11-16-2015 at 04:49 PM.. Reason: Code tags for data as well
# 2  
Old 11-16-2015
Welcome to the forum, yohan.

Could you pease attach a meaningful part of your input file as I guess the <form feed> char is NOT a text line on its own but part of a line without <new line> chars immediately around it.

And, please use code tags as required by forum rules.

---------- Post updated at 09:37 ---------- Previous update was at 09:35 ----------

And I guess, there should be one <FF> at least at the begin-of-file or end-of-file.

---------- Post updated at 09:45 ---------- Previous update was at 09:37 ----------

Based on above assumption, try:
Code:
awk '/\014/ {sub (/\014.*$/, ""); getline X; getline X} 1' file
Data 1
Data 2
Data 3
Data4
Data5
Data 6
Data 7

If that doesn't meet your expactations, the sample is indispensable.
This User Gave Thanks to RudiC For This Post:
# 3  
Old 11-16-2015
Hi Rudi

I have attached the text file where FF character can be seen in notepad++
I just want is to keep first <formfeed> characters with header lines (page 1) and to delete remaining ones from page 2 onwards

Ex -

To delete lines with the <formfeed> character

<
Code:
GL REPORT   CAISSE XXXXXXXXXX   21 SEP 15                                                                              Page    2
Area  RETAIL   No.  1                                                             Printed.at 13 NOV 2015 13:47:11
To..  EMPLOYE COMMERCIAL  EMPLOYE COMMERCI

       COMPANY CODE: LU0013500         GENERAL LEDGER  - BALANCE DETAILS ** IN EUR    FOR   18 SEP 2015



    LINE                          CURRENCY     CUSTOMER                         CURRENCY AMT            LOCAL CCY AMT   INT RATE/    INT  VALUE DATE      MAT DATE

>

Last edited by Scrutinizer; 11-16-2015 at 04:52 PM.. Reason: code tags
# 4  
Old 11-16-2015
Files is atached
# 5  
Old 11-16-2015
That attached file doesn't use <FF> chars consistently:
Code:
 hd  /tmp/FF-\ file.txt | grep -C1 0c
00000000  0c 0c 0c 0d 0a 47 4c 20  52 45 50 4f 52 54 20 20  |.....GL REPORT  |
00000010  20 43 41 49 53 53 45 20  58 58 58 58 58 58 58 58  | CAISSE XXXXXXXX|
--
000002e0  20 20 20 20 20 20 2d 32  2c 32 37 39 2e 32 38 0d  |      -2,279.28.|
000002f0  0a 0d 0a 0c 0d 0a 47 4c  20 52 45 50 4f 52 54 20  |......GL REPORT |
00000300  20 20 43 41 49 53 53 45  20 58 58 58 58 58 58 58  |  CAISSE XXXXXXX|
--
00000580  51 55 45 53 20 43 45 4e  54 52 41 4c 45 53 0d 0a  |QUES CENTRALES..|
00000590  0d 0a 30 31 32 30 20 4e  4f 53 54 52 4f 0d 0a 0c  |..0120 NOSTRO...|
000005a0  47 4c 20 52 45 50 4f 52  54 20 20 20 43 41 49 53  |GL REPORT   CAIS|
--
00000840  20 20 20 20 20 2d 31 33  36 2e 36 33 0d 0a 0d 0a  |     -136.63....|
00000850  0c 47 4c 20 52 45 50 4f  52 54 20 20 20 43 41 49  |.GL REPORT   CAI|
00000860  53 53 45 20 58 58 58 58  58 58 58 58 58 58 20 20  |SSE XXXXXXXXXX  |

You see DOS line terminators sort of randomly distributed around the <FF> chars. Has that sample been edited or does it come from its source as presented?
This User Gave Thanks to RudiC For This Post:
# 6  
Old 11-16-2015
The file has been edited, but anyhow the coding you have provided is working perfectly , thank you very much.
# 7  
Old 11-16-2015
Hi RudiC,
could you please explain \014 , when i copied the attached file it converted the FF feed to ^L. How to grep that pattern of file.
Thanks,

Last edited by looney; 11-16-2015 at 12:07 PM.. Reason: part replaced to pattern for better understanding
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Sed/awk to delete a regex between range of lines

Hi Guys I am looking for a solution to one problem to remove parentheses in a range of lines. Input file module bist_logic_inst(a, ab , dhd, dhdh , djdj, hdh, djjd, jdj, dhd, dhp, dk ); input a; input ab; input dhd; input djdj; input dhd; output hdh; output djjd; output jdj;... (5 Replies)
Discussion started by: kshitij
5 Replies

2. Shell Programming and Scripting

Delete Lines : after pattern1 and between pattern2 and pattern3 using awk/sed/perl

Hi I need to delete lines from a file which are after pattern1 and between pattern 2 and patter3, as below: aaaaaaaa bbbbbbbb pattern1 cdededed ddededed pattern2 fefefefe <-----Delete this line efefefef <-----Delete this line pattern3 adsffdsd huaserew Please can you suggest... (6 Replies)
Discussion started by: vk2012
6 Replies

3. Shell Programming and Scripting

sed or awk delete character in the lines before and after the matching line

Sample file: This is line one, this is another line, this is the PRIMARY INDEX line l ; This is another line The command should find the line with “PRIMARY INDEX” and remove the last character from the line preceding it (in this case , comma) and remove the first character from the line... (5 Replies)
Discussion started by: KC_Rules
5 Replies

4. Shell Programming and Scripting

Sed/awk to delete single lines that aren't touching other lines

Hello, I'm trying to figure out how to use sed or awk to delete single lines in a file. By single, I mean lines that are not touching any other lines (just one line with white space above and below). Example: one two three four five six seven eight I want it to look like: (6 Replies)
Discussion started by: slimjbe
6 Replies

5. Shell Programming and Scripting

sed/awk : how to delete lines based on IP pattern ?

Hi, I would like to delete lines in /etc/hosts on few workstations, basically I want to delete all the lines for a list of machines like this : for HOST in $(cat stations.lst |uniq) do # echo -n "$HOST" if ping -c 1 $HOST > /dev/null 2>&1 then HOSTNAME_val=`rsh $HOST "sed... (3 Replies)
Discussion started by: albator1932
3 Replies

6. Shell Programming and Scripting

How to delete lines using sed?

<VirtualHost 192.168.1.158:80> DocumentRoot /home/ten ServerName ten.com </VirtualHost> <VirtualHost 192.168.1.158:80> DocumentRoot /home/sachin ServerName sachin.com </VirtualHost> <VirtualHost 192.168.1.158:80> DocumentRoot /home/yuvraj ServerName yuvraj.com... (5 Replies)
Discussion started by: tkmmelvin
5 Replies

7. Shell Programming and Scripting

Sed to delete lines that with the following

Hi, I'm very new to Sed and I have a very large file that contains data in the following way (*064) 1 4 10 (*064) simulation time = 0.12000E-05 (*064) 1 2 10 (*064) 1 3 10Essentially what I want to do it delete every line that starts with '(*064) 1'I tried the following, ... (2 Replies)
Discussion started by: lost.identity
2 Replies

8. Shell Programming and Scripting

sed problem - delete all lines until a match on 2 lines

First of all, I know this can be more eassily done with perl or other scripting languages but, that's not the issue. I need this in sed. (or wander if it's possible ) I got a file (trace file to recreate the control file from oracle for the dba boys) which contains some lines another line... (11 Replies)
Discussion started by: plelie2
11 Replies

9. Shell Programming and Scripting

Delete lines containing text with sed

hello all I have bunch of files containing lines of text that surrounding by <# .......#> tags I like to delete this lines from the text files whiteout open the files , can it be done with sed ? or other unix tool (perl mybe )? (2 Replies)
Discussion started by: umen
2 Replies

10. Shell Programming and Scripting

sed help - delete last 2 lines.

I have been reading through the sed one liners, trying to understand what is happening. # delete the last 2 lines of a file sed 'N;$!P;$!D;$d' The above will delete the last 2 line of a file. I tried analyzing what happens. And I got lost :( This is what I understood so far from the... (2 Replies)
Discussion started by: vino
2 Replies
Login or Register to Ask a Question