Need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line...


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line...
# 1  
Old 06-27-2014
Need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line...

Hello,

I need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line... An example of entries in the file would be:
Code:
 
SRVXPAPI001     ERRO    JUN24 07:28:34 1775      
        REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
        00637BDC=IOCPBASE.BS01:CHECK_TID+#009C 
        0063A48C=IOCPBASE.BS01:READTRMNLSTATE+#002C 
        04D1C92C=CMAIFIH.BI03:AIF_CP_M+#05AC 
        00592F8C=MTSKERN.CY02:FORWARD_+#026C 
        0235EB54=MTSKERN.CY02:MTS_RECEIVE_P+#0354 
        0157C0DC=NFN59MOD.AB01:MTS_IRM_UDP_RX+#005C 
        0065B3A4=SCAIPPI.AK01:TPC_UDP_+#00C4 
        00658420=SCAIPPI.AK01:TPCIP_INCOMING_MSG_HANDLER_O+#0340 
        00656FA4=SCAIPPI.AK01:SCA_POLL+#0104 
        006579D8=SCAIPPI.AK01:TPCIP_INCOMING_MSG_HANDLER+#0058
 
SRVXPAPI001     ERRO    JUN24 07:28:41 2362      
        REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
        00637BDC=IOCPBASE.BS01:CHECK_TID+#009C 
        0063A48C=IOCPBASE.BS01:READTRMNLSTATE+#002C 
        04D1C92C=CMAIFIH.BI03:AIF_CP_M+#05AC 
        00592F8C=MTSKERN.CY02:FORWARD_+#026C 
        0235EB54=MTSKERN.CY02:MTS_RECEIVE_P+#0354 
        0157C0DC=NFN59MOD.AB01:MTS_IRM_UDP_RX+#005C 
        0065B3A4=SCAIPPI.AK01:TPC_UDP_+#00C4 
        00658420=SCAIPPI.AK01:TPCIP_INCOMING_MSG_HANDLER_O+#0340 
        00656FA4=SCAIPPI.AK01:SCA_POLL+#0104 
        006579D8=SCAIPPI.AK01:TPCIP_INCOMING_MSG_HANDLER+#0058
 
SRVXPAPI001     ERRO    JUN24 07:38:38 7617      
        REASON= 0101, PROCID= #459E #102F: CALLP, DATA= 03BF 0556           
        05AFD5A0=CMCALLP.BX03:CM_RESET+#1598 
        0293B2CC=CMCALLP.BX03:CM_CALL_+#006C 
        0142F860=CALLP.HX01:CALL_PRO+#0080 
        004C46A0=MODULES.FS09:INITIALIZEP+#0020 
        004A2E60=PROCS.HK03:LIVEANDD+#0020
 
SRVXPAPI001     ERRO    JUN24 07:45:08 2144      
        REASON= 00FF, PROCID= #6584 #5008: MTXTASKP, INDEX= 0000
        04BAF5C0=CMARTRUI.BM01:ROUTE_AI+#0260 
        04BAD23C=CMARTRUI.BM01:AIF_DISPATCH+#005C 
        05C20CDC=CMAIFOH.BQ01:AIF_CP_D+#0460 
        051BEF0C=MTXOH.DD05:CELLULAR+#126C 
        04A26A6C=MTXCNPUI.CI01:SEND_CPN_MSG_FROM_I+#05AC 
        044BEBD8=MSCHOSV.AQ01:INFOFWD_+#0BF8 
        044BEF20=MSCHOSV.AQ01:PROCESS_+#0040 
        0441A0C0=MTXEVARB.AP02:DISTRIBUTE_I+#00C0 
        0441A250=MTXEVARB.AP02:DISTRIBUTE_N+#0050 
        04419FB8=MTXEVARB.AP02:DISTRIBUTE_E+#0018
 
SRVXPAPI001     ERRO    JUN24 08:12:04 0309      
        REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
        00637BDC=IOCPBASE.BS01:CHECK_TID+#009C 
        0063A48C=IOCPBASE.BS01:READTRMNLSTATE+#002C 
        04D1C92C=CMAIFIH.BI03:AIF_CP_M+#05AC 
        00592F8C=MTSKERN.CY02:FORWARD_+#026C 
        0235EB54=MTSKERN.CY02:MTS_RECEIVE_P+#0354 
        0157C0DC=NFN59MOD.AB01:MTS_IRM_UDP_RX+#005C 
        0065B3A4=SCAIPPI.AK01:TPC_UDP_+#00C4 
        00658420=SCAIPPI.AK01:TPCIP_INCOMING_MSG_HANDLER_O+#0340 
        00656FA4=SCAIPPI.AK01:SCA_POLL+#0104 
        006579D8=SCAIPPI.AK01:TPCIP_INCOMING_MSG_HANDLER+#0058
 
SRVXPAPI001     ERRO    JUN24 08:12:21 1960      
        REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
        00637BDC=IOCPBASE.BS01:CHECK_TID+#009C 
        0063A48C=IOCPBASE.BS01:READTRMNLSTATE+#002C 
        04D1C92C=CMAIFIH.BI03:AIF_CP_M+#05AC 
        00592F8C=MTSKERN.CY02:FORWARD_+#026C 
        0235EB54=MTSKERN.CY02:MTS_RECEIVE_P+#0354 
        0157C0DC=NFN59MOD.AB01:MTS_IRM_UDP_RX+#005C 
        0065B3A4=SCAIPPI.AK01:TPC_UDP_+#00C4 
        00658420=SCAIPPI.AK01:TPCIP_INCOMING_MSG_HANDLER_O+#0340 
        00656FA4=SCAIPPI.AK01:SCA_POLL+#0104 
        006579D8=SCAIPPI.AK01:TPCIP_INCOMING_MSG_HANDLER+#0058
 
SRVXPAPI001     ERRO    JUN24 08:22:05 0604      
        REASON= 00FF, PROCID= #6584 #5008: MTXTASKP, INDEX= 0000
        04BAF5C0=CMARTRUI.BM01:ROUTE_AI+#0260 
        04BAD23C=CMARTRUI.BM01:AIF_DISPATCH+#005C 
        05C20CDC=CMAIFOH.BQ01:AIF_CP_D+#0460 
        051BEF0C=MTXOH.DD05:CELLULAR+#126C 
        04A26A6C=MTXCNPUI.CI01:SEND_CPN_MSG_FROM_I+#05AC 
        044BEBD8=MSCHOSV.AQ01:INFOFWD_+#0BF8 
        044BEF20=MSCHOSV.AQ01:PROCESS_+#0040 
        0441A0C0=MTXEVARB.AP02:DISTRIBUTE_I+#00C0 
        0441A250=MTXEVARB.AP02:DISTRIBUTE_N+#0050 
        04419FB8=MTXEVARB.AP02:DISTRIBUTE_E+#0018

From that output I only need to get:
Code:
SRVXPAPI001     ERRO    JUN24 07:28:34 1775      
        REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
        00637BDC=IOCPBASE.BS01:CHECK_TID+#009C 
 
SRVXPAPI001     ERRO    JUN24 07:28:41 2362      
        REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
        00637BDC=IOCPBASE.BS01:CHECK_TID+#009C 
 
SRVXPAPI001     ERRO    JUN24 07:38:38 7617      
        REASON= 0101, PROCID= #459E #102F: CALLP, DATA= 03BF 0556           
        05AFD5A0=CMCALLP.BX03:CM_RESET+#1598 
 
SRVXPAPI001     ERRO    JUN24 07:45:08 2144      
        REASON= 00FF, PROCID= #6584 #5008: MTXTASKP, INDEX= 0000
        04BAF5C0=CMARTRUI.BM01:ROUTE_AI+#0260 
 
SRVXPAPI001     ERRO    JUN24 08:12:04 0309      
        REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
        00637BDC=IOCPBASE.BS01:CHECK_TID+#009C 
 
SRVXPAPI001     ERRO    JUN24 08:12:21 1960      
        REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
        00637BDC=IOCPBASE.BS01:CHECK_TID+#009C 
 
SRVXPAPI001     ERRO    JUN24 08:22:05 0604      
        REASON= 00FF, PROCID= #6584 #5008: MTXTASKP, INDEX= 0000
        04BAF5C0=CMARTRUI.BM01:ROUTE_AI+#0260

And after that make a report...

Itīd be so useful to have a program that does it as the daily file contains at least 20K+ records :S


Moderator's Comments:
Mod Comment Please use code tags next time for your code and data. Thanks

Last edited by vbe; 06-27-2014 at 11:36 AM..
# 2  
Old 06-27-2014
What have you tried so far? What OS and shell are you using?
# 3  
Old 06-27-2014
If you have GNU awk, try:
Code:
$ awk '{print $1 OFS $2 OFS $3}' RS='\n \n' ORS='\n \n' FS='\n' OFS='\n' file
SRVXPAPI001     ERRO    JUN24 07:28:34 1775
        REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
        00637BDC=IOCPBASE.BS01:CHECK_TID+#009C

SRVXPAPI001     ERRO    JUN24 07:28:41 2362
        REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
        00637BDC=IOCPBASE.BS01:CHECK_TID+#009C

SRVXPAPI001     ERRO    JUN24 07:38:38 7617
        REASON= 0101, PROCID= #459E #102F: CALLP, DATA= 03BF 0556
        05AFD5A0=CMCALLP.BX03:CM_RESET+#1598

SRVXPAPI001     ERRO    JUN24 07:45:08 2144
        REASON= 00FF, PROCID= #6584 #5008: MTXTASKP, INDEX= 0000
        04BAF5C0=CMARTRUI.BM01:ROUTE_AI+#0260

SRVXPAPI001     ERRO    JUN24 08:12:04 0309
        REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
        00637BDC=IOCPBASE.BS01:CHECK_TID+#009C

SRVXPAPI001     ERRO    JUN24 08:12:21 1960
        REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
        00637BDC=IOCPBASE.BS01:CHECK_TID+#009C

SRVXPAPI001     ERRO    JUN24 08:22:05 0604
        REASON= 00FF, PROCID= #6584 #5008: MTXTASKP, INDEX= 0000
        04BAF5C0=CMARTRUI.BM01:ROUTE_AI+#0260

This User Gave Thanks to CarloM For This Post:
# 4  
Old 06-27-2014
Code:
awk '!NF{c=0;print;next}++c<=3' file

These 3 Users Gave Thanks to Yoda For This Post:
# 5  
Old 06-27-2014
Thank you Yoda and CarloM

Yoda
Code:
awk '!NF{c=0;print;next}++c<=3' 20140624-swerrs

CarloM
Code:
awk '{print $1 OFS $2 OFS $3}' RS='\n \n' ORS='\n \n' FS='\n' OFS='\n' 20140624

Both codes did the work.

I am using

Code:
$ cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.5 (Santiago)
$ echo $SHELL
/bin/bash

I am a newbie in Unix/Linux world, I work in telecommunications.


Thank you all!
# 6  
Old 06-27-2014
While awk works well you could have also user egrep and grep -v as in:

Code:
egrep -A3 "^$" | grep -v "^$"

# 7  
Old 06-27-2014
Hello gandolf989,

Tried your command with no luck at all, maybe I am doing something wrong:

Code:
$ egrep -A3 "^$" | grep -v "^$"
^C
$ egrep -A3 "^$" 20140624-swerrs| grep -v "^$"
$ egrep -A3 "^$" | grep -v "^$" 20140624-swerrs

SRVXPAPI001     ERRO    JUN24 07:09:09 0140      
        REASON= 0000, PROCID= #E59C #1011: CALLP, INDEX= 2BAD
        056D0B44=CCSMUI.AO08:CCSM_ERR+#0064 
        056C6CB4=MTXCBTG.AO16:MTX_HOLD_C+#08B4 
        024AB1A4=FTRUTLUI.DI01:HANDLE_H+#1144 
        024AC2A4=FTRUTLUI.DI01:HELD_SUP+#0544 
        024ACA1C=FTRUTLUI.DI01:HOLD+#019C 
        024ACDF4=FTRUTLUI.DI01:HOLDCONN+#0294 
        024B3068=FTRNETUI.DK01:FLIPFLOP+#0108 
        05BC048C=MTXCWTEV.CU03:CW_TALKI+#048C 
        049AC2EC=MTXCWTUI.CR07:MTX_CWT_INVOKE_HANDLER+#006C 
        049E4350=MTXCWTEV.CU03:CW_REALE+#0550
 
SRVXPAPI001     ERRO    JUN24 07:28:34 1775      
        REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
        00637BDC=IOCPBASE.BS01:CHECK_TID+#009C 
        0063A48C=IOCPBASE.BS01:READTRMNLSTATE+#002C 
        04D1C92C=CMAIFIH.BI03:AIF_CP_M+#05AC 
        00592F8C=MTSKERN.CY02:FORWARD_+#026C 
        0235EB54=MTSKERN.CY02:MTS_RECEIVE_P+#0354 
        0157C0DC=NFN59MOD.AB01:MTS_IRM_UDP_RX+#005C 
        0065B3A4=SCAIPPI.AK01:TPC_UDP_+#00C4 
        00658420=SCAIPPI.AK01:TPCIP_INCOMING_MSG_HANDLER_O+#0340 
        00656FA4=SCAIPPI.AK01:SCA_POLL+#0104 
        006579D8=SCAIPPI.AK01:TPCIP_INCOMING_MSG_HANDLER+#0058
 
SRVXPAPI001     ERRO    JUN24 07:28:41 2362      
        REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
        00637BDC=IOCPBASE.BS01:CHECK_TID+#009C 
        0063A48C=IOCPBASE.BS01:READTRMNLSTATE+#002C 
        04D1C92C=CMAIFIH.BI03:AIF_CP_M+#05AC 
        00592F8C=MTSKERN.CY02:FORWARD_+#026C 
        0235EB54=MTSKERN.CY02:MTS_RECEIVE_P+#0354 
        0157C0DC=NFN59MOD.AB01:MTS_IRM_UDP_RX+#005C 
        0065B3A4=SCAIPPI.AK01:TPC_UDP_+#00C4 
        00658420=SCAIPPI.AK01:TPCIP_INCOMING_MSG_HANDLER_O+#0340 
        00656FA4=SCAIPPI.AK01:SCA_POLL+#0104 
        006579D8=SCAIPPI.AK01:TPCIP_INCOMING_MSG_HANDLER+#0058

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Get an output of lines in pattern 1st line then 10th line then 11th line then 20th line and so on.

Input file: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 (6 Replies)
Discussion started by: Sagar Singh
6 Replies

2. Shell Programming and Scripting

Read the file line by line and do something with lines

I have a file file_name_O.txt The file can have different number of other files names or nothing I will check cnt=`wc -l file_name_0.txt` if ;then exit 1 fi Now I have to start checking file names, i.e. read txt file line by line. If amount of ,lines equal 1, I can... (4 Replies)
Discussion started by: digioleg54
4 Replies

3. Shell Programming and Scripting

How to read file line by line and compare subset of 1st line with 2nd?

Hi all, I have a log file say Test.log that gets updated continuously and it has data in pipe separated format. A sample log file would look like: <date1>|<data1>|<url1>|<result1> <date2>|<data2>|<url2>|<result2> <date3>|<data3>|<url3>|<result3> <date4>|<data4>|<url4>|<result4> What I... (3 Replies)
Discussion started by: pat_pramod
3 Replies

4. Shell Programming and Scripting

how to read the contents of two files line by line and compare the line by line?

Hi All, I'm trying to figure out which are the trusted-ips and which are not using a script file.. I have a file named 'ip-list.txt' which contains some ip addresses and another file named 'trusted-ip-list.txt' which also contains some ip addresses. I want to read a line from... (4 Replies)
Discussion started by: mjavalkar
4 Replies

5. Shell Programming and Scripting

How to read a file line by line and store it in a variable to execute a program ?

Hello, I am quite new in shell scripting and I would like to write a little scritp to run a program on some parameters files. all my parameters files are in the same directory, so pick them up with ls *.para >>dirafter that I have a dir file like that: param1.para param2.para etc... I... (2 Replies)
Discussion started by: shadok
2 Replies

6. Shell Programming and Scripting

Shell script to read a text file line by line & process it...

Hi , I am trying to write an shell, which reads a text file (from a location) having a list of numbers of strictly 5 digits only ex: 33144 Now my script will check : 1) that each entry is only 5 digits & numeric only, no alphabets, & its not empty. 2)then it executes a shell script called... (8 Replies)
Discussion started by: new_to_shell
8 Replies

7. Shell Programming and Scripting

Fill the empty line by adding line before blank line

FIle A "A" 2 aa 34 3 ac 5 cd "B" 3 hu 67 4 fg 5 gy output shud be A"" 2 aa 34 "A" 3 ac 34 "A" 5 cd 34 "B" 3 hu 67 "B" 4 fg 67 "B" 5 gy 67 (6 Replies)
Discussion started by: cdfd123
6 Replies

8. Shell Programming and Scripting

howto add line as a first line into a non empty file

Hi Trying to do like this : echo "$variable1\n $(cat file.txt)" but it only adds one time. When I run this cmd again with different variable it only replaces line of variable1. How to add constantly line into first line in file ? (3 Replies)
Discussion started by: presul
3 Replies

9. Shell Programming and Scripting

bash: read file line by line (lines have '\0') - not full line has read???

I am using the while-loop to read a file. The file has lines with null-terminated strings (words, actually.) What I have by that reading - just a first word up to '\0'! I need to have whole string up to 'new line' - (LF, 10#10, 16#A) What I am doing wrong? #make file 'grb' with... (6 Replies)
Discussion started by: alex_5161
6 Replies

10. Shell Programming and Scripting

cat file1 read line-per-line then grep -A 15 lines down in fileb

STEP 1 # Set variable FILE=/tmp/mainfile SEARCHFILE =/tmp/searchfile # THIS IS THE MAIN FILE. cat /tmp/mainfile Interface Ethernet0/0 "outside", is up, line protocol is up Hardware is i82546GB rev03, BW 100 Mbps Full-Duplex(Full-duplex), 100 Mbps(100 Mbps) MAC address... (6 Replies)
Discussion started by: irongeekio
6 Replies
Login or Register to Ask a Question