Get value between brackets


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Get value between brackets
# 1  
Old 01-26-2011
Get value between brackets

Hi
I am having hard time getting this right and need some help. I Have several log files, and everyone contains the following 3 lines at the end:

4 ETW000 Disconnected from database.
4 ETW000 End of Transport (0000).
4 ETW000 date&time: 13.01.2011 - 08:03:28


I need to capture the value between brackets to be able to compare it to another one and make a decision. In this case, it is 0000.

Could someone help pls.
# 2  
Old 01-26-2011
Quote:
Originally Posted by nimo
...

4 ETW000 Disconnected from database.
4 ETW000 End of Transport (0000).
4 ETW000 date&time: 13.01.2011 - 08:03:28


I need to capture the value between brackets to be able to compare it to another one and make a decision. In this case, it is 0000.
...
Code:
$
$
$ cat f2
4 ETW000 Disconnected from database.
4 ETW000 End of Transport (0000).
4 ETW000 date&time: 13.01.2011 - 08:03:28
$
$
$ perl -lne 'print $1 if /^.*End of Transport \((.*)\)\.$/' f2
0000
$
$

tyler_durden
# 3  
Old 01-26-2011
Code:
 sed -n 's/.*[(]\([0-9]*\)[)].*/\1/p' < infile

# 4  
Old 01-26-2011
Code:
tail -2 infile  | grep -oP '(?<=\()[[:digit:]]+(?=\))'

Assumes last line never has a pattern like "(nnnnnn)", where n are some number of digits. Pattern matches one or more (+) digits between parentheses but not the parentheses themselves (-P switch enables the use of Perl look-behind/look-ahead).

If the second to the last line is really fixed to be
4 ETW000 End of Transport (0000)
where only the number inside the () varies, and this line never occurs elsewhere in the files, then you could simplify and use:
Code:
grep -oP '(?<=4 ETW000 End of Transport \()[[:digit:]]+(?=\))'  infile


Last edited by grepeverything; 01-26-2011 at 07:28 PM..
# 5  
Old 01-26-2011
Code:
perl -e 'while(<STDIN>) { print $1 if(/\((\d+)\)/); }' < infile

# 6  
Old 01-26-2011
Quote:
Originally Posted by citaylor
Code:
perl -e 'while(<STDIN>) { print $1 if(/\((\d+)\)/); }' < infile

use -n and why the redirection?
Code:
perl -ne 'print $1 if .... ' file

---------- Post updated at 07:14 PM ---------- Previous update was at 07:10 PM ----------

Code:
tail -4 file| awk -F"[()]" 'NF&&/\(/{print $(NF-1)}'

# 7  
Old 01-26-2011
Code:
awk  -F "[)(]"  'NR==FNR {t=NR;next} FNR==t-1 {print $2}' infile infile

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Capture the value between brackets

Hi I am having hard time getting this right and need some help. I Have 3 files, and everyone contains the following:- File1 Today, we have Name(Jack) Age(19) Class (A2) Today, we have Name(Kim) Class (G9) File2 Today, we have Name(Lee) Age(19) Class (A2) Today, we have... (8 Replies)
Discussion started by: samsan
8 Replies

2. Shell Programming and Scripting

Brackets

Hi all. i need a small help. i have written an exit code, which will check whether mo.sh is successful or not. if the status is >0 it will exit the shell. 1>Do you guys think it is a correct way to write? 2>what if i change the double bracket to single. how will it change the o/p. ... (1 Reply)
Discussion started by: sub
1 Replies

3. Shell Programming and Scripting

adding brackets

Hi, If you suppose that you have two columns of numbers, and I want to merge these two columns into one and put a bracket around it. and perphaps add a dash between two numbers. input.txt 1 2 3 4 5 6 7 8 output.txt (1-2) (3-4) (5-6) (7-8) Thanks in advance! Please use... (2 Replies)
Discussion started by: johnkim0806
2 Replies

4. Shell Programming and Scripting

Delete text between square brackets and also delete those square brackets using sed or awk

Hi All, I have a text file which looks like this: computer programming systems engineering I want to get rid of these square brackets and also the text that is inside these brackets. So that my final text file looks like this: computer programming systems engineering I am using... (3 Replies)
Discussion started by: shoaibjameel123
3 Replies

5. Shell Programming and Scripting

How to get the value in the first brackets

Hello, I am trying to write a script using ksh. And I want to get the value within the first brackets of a string. For example: 14/04/11 11:35: 00 This is (nn) from the earth. Then i hope to get nn in this case. Can any one advise me how to implement it? Thank you very much! nn (2 Replies)
Discussion started by: n_n
2 Replies

6. UNIX for Dummies Questions & Answers

question about brackets ()

Hello guys, I'm brand new to UNIX. I've installed Cygwin as recommended, but here are some problems. Well, man command doesn't work and I also don't know how to create a file or even how to type (). With () the program gives me an error message. Please tell me how to do all these things. Best... (4 Replies)
Discussion started by: wadem
4 Replies

7. Shell Programming and Scripting

help to delete brackets [ ]

hi all, i want to delete brackets in all the file and to keep the string or data between them ( example Q --> Qxxx) with sed command.. thanks (4 Replies)
Discussion started by: kamel.seg
4 Replies

8. UNIX for Dummies Questions & Answers

usage of brackets for if

Hi, I would like to know about the usage of brackets to negate a set of boolean evaluations an equivalent to what i am trying is below if or || ] ] then echo"valid time of day" else echo "invalid input" exit fi the bracket structue as mentioned doesnt work .. i am using ksh.... (4 Replies)
Discussion started by: lakshmikanth
4 Replies

9. Shell Programming and Scripting

how do you use brackets ?? in a script.

:D i am pretty much new to scripting and don't want to pick up bad habits so I am trying to get myself to use brackets in my scripts since I plan on using them alot.. ! in this example of a script I wrote I can not figure out where the brackets go can anyone give me some insight into the use of... (3 Replies)
Discussion started by: moxxx68
3 Replies

10. Post Here to Contact Site Administrators and Moderators

Angle brackets

From the Apache thread in the Adanced forum: Thats because your browser interprets anything within angle brackets to be an HTML tag. You need to quote these brackets if you want them to appear correctly. The proper quotes are: &amp;lt; for < and &amp;gt; for > So, for example, you would have... (1 Reply)
Discussion started by: PxT
1 Replies
Login or Register to Ask a Question