sed or awk: delete n lines following a formfeed


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed or awk: delete n lines following a formfeed
# 1  
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 05:49 PM.. Reason: Code tags for data as well
# 2  
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  
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 05:52 PM.. Reason: code tags
# 4  
Files is atached
# 5  
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  
The file has been edited, but anyhow the coding you have provided is working perfectly , thank you very much.
# 7  
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 01:07 PM.. Reason: part replaced to pattern for better understanding
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #93
Difficulty: Easy
The mkdir command will create a new directory even if the user does not have the required permissions to write to the parent directory of the new directory.
True or False?

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

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

10. Shell Programming and Scripting

Delete multiple lines w/ sed

Hi all, I am trying to figure out the syntx to delete multiple lines w/ sed. I know the following syntax will delete lines 1 THROUGH 5 from filex: sed 1,5d filex But I wan to delete lines 1 AND 5 (keeping lines 2,3, and 4). Does anyone know how to do this in a single sed statement? ... (2 Replies)
Discussion started by: bookoo
2 Replies

Featured Tech Videos