regex question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting regex question
# 1  
Old 01-04-2007
regex question

I have a simple file test.out that contains data in the form of

key1=A|shift1
key2=B|shift2
key3=C|shift3

and so on.

I need to get it to print

A
B
C

I can do it using lookbehind assertion such as this
( ?<==)([a-zA-Z])

yet I was wondering if there is another way of mutching single character following the '=' ?. I am fairly new to regex and so far I could not find good way of matching a part of a string after or before certain characters or set of characters other that using assertions.
Any examples would be helpful.
thank you in advance
# 2  
Old 01-04-2007
Code:
sed "s/[^=]*=\(.\).*/\1/" file

# 3  
Old 01-04-2007
thank you it worked.
# 4  
Old 01-04-2007
awk one

Code:
awk -F'[=|]' '{print $2}' testfile

# 5  
Old 01-04-2007
Being on the same topic I have another question.
If I have files that contains following data

key1^A|shift1|376
key2^B|shift
key3^C|shift23|2|5

and so on

how would I change first instance of the '|' to '^' ?

to have something like this

key1^A^shift1|376
key2^B^shift
key3^c^shift23|2|5

I tried
sed 's/.+\d\^[a-zA-Z]\|.*/s/.+\d\^[a-zA-Z]\^.*/'

but that did not work
thank you in advance
# 6  
Old 01-04-2007
check this

actually its simple sed substitution -
Code:
sed 's/|/^/' testfile

# 7  
Old 01-04-2007
that will not work as it will replace all occurances of '|', but only first occurence of '|' needs to be replaced
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Regex question

I want to match all occurrence of 01,03,05,07,10,11 at 9th and 10th position of a string . I tried the following but its also matching characters like 33 or 11 on 9th and 10th position . sed "/^\{8\}00/d" A.TXT 000000001000 433483433339 <<< wrong 121121211100 <<< wrong 167710000110... (10 Replies)
Discussion started by: boncuk
10 Replies

2. Shell Programming and Scripting

Regex Question

Hi I am trying to match lines having following string BIND dn="uid= putting something like this is not working : /\sBIND dn="uid=/ Any suggestion. Thanks. John (9 Replies)
Discussion started by: john_prince
9 Replies

3. Shell Programming and Scripting

regex question

Hi guys, I am trying to "grep" or "egrep" the following entry out of the file using regex: MACCDB1 or MACCDB2 The problem is that the file might contain other entries which start with "MACCDB" string. I was trying to use regex to "grep" the exact pattern but it fails to output the correct... (2 Replies)
Discussion started by: aoussenko
2 Replies

4. Shell Programming and Scripting

regex question

Hi guys, I have a file in the following format: cmpr5551 cmpr6002 cmpr93 anne 5454 bbro 434 cmprsvc cmprsvc7 ffgi55 vefe99 cmprsvc8 cmprsvc9 I need to "grep" only the entries which start with "cmpr" followed by the number. All other entries should be excluded. I was trying to use... (3 Replies)
Discussion started by: aoussenko
3 Replies

5. Shell Programming and Scripting

RegEX question

Hi, I am trying to write a regex for myscript and need some input from experts. here is what I must grep for TICKET{Sapce}{Space}{hyphen} so here is the example data TICKET 34554, CT-12345, TICKET 12345: some text here TICKET 2342, CT-12345, MA-12344: some text here TICKET... (5 Replies)
Discussion started by: rider29
5 Replies

6. UNIX for Dummies Questions & Answers

regex question

I have dates in mm/dd/yy format that I wish to convert to yy-mm-dd format. ()/()/() finds them, but when I try to replace with $3-$1-$2 both kate and kwrite treat it as a text literal. (2 Replies)
Discussion started by: porphyry5
2 Replies

7. Shell Programming and Scripting

Question on regex with * and .

I have a basic question regarding * and . while using regex: # echo 3 | grep ^*$ 3 I think I understood why it outputs "3" here (because '*' matches zero or more of the previous character) but I don't understand the output of the following command: # echo 3 | grep ^.$ # I thought I... (7 Replies)
Discussion started by: mirage
7 Replies

8. Shell Programming and Scripting

regex question

Hi, im sure this is really simple but i cant quite figure it out. how do i test against a word at the beginning of the line but up to the point of a delimiter i.e. ":" for example if i wanted to test against the user in the /etc/passwd file peter:x:101:100:peters account:/var/peter:/bin/sh ... (3 Replies)
Discussion started by: hcclnoodles
3 Replies

9. Shell Programming and Scripting

regex question

Hi I have a question on regex There is a line in a script like my_file="$(echo SunMonTueWed | sed "s//_&g") " My question what does the expression _&g do. Obviously in this example the output is _Sun_Mon_Tue_Wed Another question can i use some trick to get the result like... (3 Replies)
Discussion started by: xiamin
3 Replies

10. UNIX for Dummies Questions & Answers

regex question

hi, i got a problem with understanding regular expressions. what i wanna do is scanning the wtmp logfile for ips and if a specific ip is echoed id like to be a part of a text to be assigned to it. the scanning is done with #! /bin/bash cat wtmp | strings | egrep -o "+\.+\.+\." | sort -u... (6 Replies)
Discussion started by: rocketkids
6 Replies
Login or Register to Ask a Question