Visit Our UNIX and Linux User Community


awk/sed for parsing file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk/sed for parsing file
# 1  
Old 11-26-2008
awk/sed for parsing file

Hi All,

I have a log file like this


Code:
E Mon Oct 06 00:17:08 2008  xxx2  cm:10614  fm_pi2_svc_iptv_purchase.c:149 1:pin_deferred_act:10601:11:169:1223245028:16
        pi2_op_svc_iptv_purchase error
        <location=PIN_ERRLOC_FM:5 class=PIN_ERRCLASS_SYSTEM_DETERMINATE:1 errno=PIN_ERR_NOT_FOUND:3>
D Mon Oct 06 00:42:26 2008  xxx2  cm:10611  fm_pi2_mov_wal_change.c:341 1:xxxxapp2:pin_deferred_act:10601:2:169:1223246545:104
        WAL_PRODUCT_CHANGE input flist
D Mon Oct 06 00:42:26 2008  xxxxapp2  cm:10611  fm_pi2_mov_wal_change.c:341 1:xxxxapp2:pin_deferred_act:10601:2:169:1223246545:104
        WAL_PRODUCT_CHANGE input flist
E Mon Oct 06 00:17:08 2008  xxxxapp2  cm:10614  fm_pi2_svc_iptv_purchase.c:149 1:xxxxapp2:pin_deferred_act:10601:11:169:1223245028:16
        pi2_op_svc_iptv_purchase error
        <location=PIN_ERRLOC_FM:5 class=PIN_ERRCLASS_SYSTEM_DETERMINATE:1 errno=PIN_ERR_NOT_FOUND:3>
        <location=PIN_ERRLOC_FM:5 class=PIN_ERRCLASS_SYSTEM_DETERMINATE:1 errno=PIN_ERR_NOT_FOUND:3>
        <location=PIN_ERRLOC_FM:5 class=PIN_ERRCLASS_SYSTEM_DETERMINATE:1 errno=PIN_ERR_NOT_FOUND:3>
D Mon Oct 06 00:17:08 2008  xxxxapp2  cm:10614  fm_pi2_svc_iptv_purchase.c:149 1:xxxxapp2:pin_deferred_act:10601:11:169:1223245028:16
	XXXXXXXXXXXXX

I need to filter this log file based on the process id which is marked as bold.
if i am giving 10614 as a input parameter it should show only the logs of that process id like this :


Code:
E Mon Oct 06 00:17:08 2008  xxx2  cm:10614  fm_pi2_svc_iptv_purchase.c:149 1:pin_deferred_act:10601:11:169:1223245028:16
        pi2_op_svc_iptv_purchase error
        <location=PIN_ERRLOC_FM:5 class=PIN_ERRCLASS_SYSTEM_DETERMINATE:1 errno=PIN_ERR_NOT_FOUND:3>
E Mon Oct 06 00:17:08 2008  xxxxapp2  cm:10614  fm_pi2_svc_iptv_purchase.c:149 1:xxxxapp2:pin_deferred_act:10601:11:169:1223245028:16
        pi2_op_svc_iptv_purchase error
        <location=PIN_ERRLOC_FM:5 class=PIN_ERRCLASS_SYSTEM_DETERMINATE:1 errno=PIN_ERR_NOT_FOUND:3>
        <location=PIN_ERRLOC_FM:5 class=PIN_ERRCLASS_SYSTEM_DETERMINATE:1 errno=PIN_ERR_NOT_FOUND:3>
        <location=PIN_ERRLOC_FM:5 class=PIN_ERRCLASS_SYSTEM_DETERMINATE:1 errno=PIN_ERR_NOT_FOUND:3>
D Mon Oct 06 00:17:08 2008  xxxxapp2  cm:10614  fm_pi2_svc_iptv_purchase.c:149 1:xxxxapp2:pin_deferred_act:10601:11:169:1223245028:16
	XXXXXXXXXXXXX

How can i do this through awk or sed ?

Thanks in advance

Last edited by radoulov; 11-26-2008 at 05:48 AM.. Reason: added code tags, plese use them ...
# 2  
Old 11-26-2008
Use nawk or /usr/xpg4/bin/awk on Solaris.

Code:
awk 'END {
  if (f) print r
  }
/ Mon / {
  if (f) print r
  r = f = 0
  }
$0 ~ "cm:" id { f++ }  
{ r = r ? r RS $0 : $0 }
' id=<id> logfile

# 3  
Old 11-26-2008
Hi,
Thanks for the reply...
I tried like this .

awk 'END {
if (f) print r
}
/ Mon / {
if (f) print r
r = f = 0
}
$0 ~ "cm:" id { f++ }
{ r = r ? r RS $0 : $0 }
' id=10614 logfile.txt

But i am getting this error ;

./awk.sh
awk: syntax error near line 4
awk: bailing out near line 4

The log file not always start with Mon, it can be any other day like Wed,Fri etc ..

Thanks and Regards,
Subin
# 4  
Old 11-26-2008
Quote:
Originally Posted by subin_bala
Hi,
[...]

But i am getting this error ;

./awk.sh
awk: syntax error near line 4
awk: bailing out near line 4
Did you follow the nawk/XPG awk suggestion?

Quote:
The log file not always start with Mon, it can be any other day like Wed,Fri etc ..
OK,
change the regex from / Mon / to !/^[\t ]/.
# 5  
Old 11-26-2008
How can i use "nawk/XPG awk suggestion" in my code ?

if i am trying following command :

which awk - /usr/bin/awk is the output
which nawk - /usr/bin/nawk is the output
# 6  
Old 11-26-2008
Just run nawk or /usr/xpg4/bin/awk instead of awk.
# 7  
Old 11-26-2008
Hi,

I used nawk and its working fine.

Thanks alot Radoulov for ur constant support Smilie

Thanks and Regards,
Subin

Previous Thread | Next Thread
Test Your Knowledge in Computers #573
Difficulty: Medium
PHP does not allow you to use arrays as both function parameters and as return types.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Interesting awk/Perl/sed parsing challenge

I have a log with entries like: out/target/product/imx53_smd/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/bindings/V8HTMLVideoElement.cpp : target thumb C++: libwebcore <=... (8 Replies)
Discussion started by: glev2005
8 Replies

2. Shell Programming and Scripting

awk/sed line parsing

I'm new to shell programming, but I think I learn best by following an example. I'm trying to cook up an awk/sed script, but I obviously lack the required syntax skills to achieve it. The output that I get from running my ksh script looks like this: I need to search each numbered line for... (10 Replies)
Discussion started by: iskatel
10 Replies

3. UNIX for Advanced & Expert Users

Parsing through a file with awk/sed

I don't necessary have a problem, as I have a solution. It is just that there may be a better solution. GOAL: Part one: Parse data from a file using the "\" as a delimiter and extracting only the last delimiter. Part two: Parse same file and extract everything but the last delimited item. ... (8 Replies)
Discussion started by: OrangeYaGlad
8 Replies

4. Shell Programming and Scripting

Parsing with awk or sed

I want to delete corrupt records from a file through awk or sed. Can anyone help me with this Thanks Striker Change subject to a descriptive one, ty. (1 Reply)
Discussion started by: Rahul_us
1 Replies

5. Shell Programming and Scripting

Another parsing line awk or sed problem

Hi, After looking on different forums, I'm still in trouble to parse a parameters line received in KSH. $* is equal to "/AAA:111 /BBB:222 /CCC:333 /DDD:444" I would like to parse it and be able to access anyone from his name in my KSH after. like echo myArray => display 111 ... (1 Reply)
Discussion started by: RickTrader
1 Replies

6. Shell Programming and Scripting

Line Parsing using sed and awk

Hi Guys, I need help with processing data in a file, line by line. My file test.txt has X_Building_X5946/X0 BUT/U_msp/RdBuMon_d2_B_00 BUT/U_msp/FfRmDaMix_d2_Pi3 Test_Long xp=849.416 yp=245.82 xn=849.488 yn=245.82 w=0.476 l=0.072 fault_layer="Al_T01_Mod" $ $X=849416 $Y=245582... (2 Replies)
Discussion started by: naveen@
2 Replies

7. Shell Programming and Scripting

String parsing with awk/sed/?

If I have a string that has some name followed by an ID#(ex.B123456) followed by some more #'s and/or letters, would it be possible to just grab the ID portion of this string? If so how? I am pretty new with these text tools so any help is appreciated. Example: "Name_One-B123456A-12348A" (2 Replies)
Discussion started by: airon23bball
2 Replies

8. Shell Programming and Scripting

Parsing a file (sed/awk?)

Hello people, newbie question. I'm trying to parse these type of file 1 "CAR " " C1 " " " 6 0 C1 2 "CAR " " O1A" " " 8 0 O1A 3 "CAR " " O1B" " " 8 -1 O1B 4 "CAR " " C2 " " " 6 0 C2 5 "CAR " " C3 " " " 6 ... (10 Replies)
Discussion started by: aristegui
10 Replies

9. Shell Programming and Scripting

parsing xml with awk/sed

Hi people!, I need extract from the file (test-file.txt) the values between <context> and </context> tag's , the total are 7 lines,but i can only get 5 or 2 lines!!:confused: Please look my code: #awk '/context/{flag=1} /\/context/{flag=0} !/context/{ if (flag==1) p rint $0; }'... (3 Replies)
Discussion started by: ricgamch
3 Replies

10. Shell Programming and Scripting

awk sed parsing

hi , i would like to parse some file with the fallowing data : data data data "unwanted data" data data "unwanted data" data data data data #unwanted data. what i want it to have any coments between "" and after # to be erased using awk or/and sed. has anyone an idea? thanks. (3 Replies)
Discussion started by: Darsh
3 Replies

Featured Tech Videos