Parsing log with sed problem


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Parsing log with sed problem
# 8  
Old 01-06-2011
Is it safe to assume the SQL statements are all in upper case?

Can an SQL statment contain lower case (perhaps in the criteria):
Code:
SELECT CNT FROM S WHERE SNAME='Jones'

# 9  
Old 01-07-2011
Code:
sed '
  s/.* #STMT# \(.*\) from: .*/\1/
  t
  s/.*,main\])--//
  t
  d
 '

# 10  
Old 01-07-2011
Quote:
Originally Posted by Scrutinizer
Or awk:
Code:
awk -F'--|[][]' '/#STMT#/{print $2;next}$NF!~/[[:lower:]]/{print $NF}' infile

Code:
sed -n 's/.*#STMT# \[\([^]]*\).*/\1/p;/--[^[:lower:]]*$/s/.*--//p' infile

Thanks. Unfortunatelly the awk installed can not work with long lines of those logs, that is the reason for sed to be preferred. Somehow the sed solution posted has been running for some 20 minutes and that might (or might not) be due to the version of sed on the system.

---------- Post updated at 12:20 PM ---------- Previous update was at 12:19 PM ----------

Quote:
Originally Posted by Chubler_XL
Is it safe to assume the SQL statements are all in upper case?

Can an SQL statment contain lower case <snip>[/code]
Yes, I've seen some, that is why grep -v in prev. post would not work.
# 11  
Old 01-07-2011
Normalized uppercase, but all case is legal.
# 12  
Old 01-07-2011
Quote:
Originally Posted by DGPickett
Code:
sed '
  s/.* #STMT# \(.*\) from: .*/\1/
  t
  s/.*,main\])--//
  t
  d
 '

Thank you, solution works, but verrrrry slow (post #4 sed solution by Scrutinizer suffers the same problem)

I'm guessing this is due to the sed version installes, I don't know how to get sed version, this one does not like the usual -v or --version.

Thank you people! So far Chubler_XL solution works the best.
# 13  
Old 01-07-2011
The slowless is probably partly due to the grouping part, the part in parentheses... Does this make difference?
Code:
sed -n '/.*#STMT#/{s/[^[]*\[//;s/\].*//;p;};/--[^[:lower:]]*$/s/.*--//p' infile

reversing the two statements is faster:
Code:
sed -n '/--[^[:lower:]]*$/s/.*--//p;/.*#STMT#/{s/[^[]*\[//;s/\].*//;p;}' infile


Last edited by Scrutinizer; 01-07-2011 at 05:40 PM..
# 14  
Old 01-07-2011
You might even profit from an egrep in front, to spread the load so sed does not need to test every line.
Code:
grep -E ' #STMT# |,main\]\)--' $input_file | sed '
  s/.* #STMT# \(.*\) from: .*/\1/
  t
  s/.*,main\])--//
 '

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Parsing via sed issue

sorry I messed up the last post with too many mistakes and corrections so I closed it and opening a new one which should be clear to everyone .my apologies to the admins. I am using sun solaris and Linux , what I want is SED to print any string (or output it to a file preferably) that does... (2 Replies)
Discussion started by: boncuk
2 Replies

2. UNIX for Dummies Questions & Answers

sed or Grep Parsing

I would like to parse two strings from lines in a file only when both strings appear on the same line. For example, if I have the following line: string1 string2 string3 string4 string5 string6 string7 string8 string9 I would like the output to be: string2: string7 Can someone give me... (5 Replies)
Discussion started by: ARBlue79
5 Replies

3. Shell Programming and Scripting

[SED] Parsing to get a single value

Hello guys, I guess you are fed up with sed command and parse questions, but after a while researching the forum, I could not get an answer to my doubt. I know it must be easy done with sed command, but unfortunately, I never get right syntax of this command OK, this is what I have in my... (3 Replies)
Discussion started by: manolain
3 Replies

4. Shell Programming and Scripting

Sed special parsing

What is the shortest & right way to remove the string "" with a sed statement ? echo 'whateverwhatever' | sed ........ ? :) (2 Replies)
Discussion started by: ctsgnb
2 Replies

5. Shell Programming and Scripting

sed (parsing value)

All, Can somebody provide me with some sed expertise on how to parse the following line. 27-MAR-2011 10:28:01 * (CONNECT_DATA=(SID=dmart)(CID=(PROGRAM=sqlplus)(HOST=mtasnprod1)(USER=mtasnord))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.197.7.47)(PORT=54881)) * establish * dmart * 0 I would like... (3 Replies)
Discussion started by: BeefStu
3 Replies

6. Shell Programming and Scripting

Parsing cron with sed

Hello I want to convert my cron list into a csv Can you please help me with sed ? eg: Convert #06,21,36,51 * * 1,2 * (. ~/.profile ; timex /some/path/script -30 -15) >> /some/path/logfile2 2>&1 * * * * * (. ~/.profile ; timex /some/path/script2) > /some/path/logfile2 To:... (1 Reply)
Discussion started by: drbiloukos
1 Replies

7. 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

8. 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

9. Shell Programming and Scripting

Sed parsing error

I'm having a problem with a sed script. A programmer needs to change columns 942,943,944 to blank spaces only where it has the number 999 in every line. I didn't have a copy of the data file to test with originally so made my own up with a bunch of x's and put 999 in columns 5-7. The sed... (1 Reply)
Discussion started by: gravy26
1 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
Login or Register to Ask a Question