[BASH/SH] Regex/Rematching Problems


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting [BASH/SH] Regex/Rematching Problems
# 8  
Old 04-08-2011
All the tools will never replace brain
Depending on where you are going to use it :
Code:
[0-9a-fA-F]{32}

Code:
[0-9a-fA-F]\{32\}

Code:
[[:xdigit:]]\{32\}

Smilie
# 9  
Old 04-08-2011
THX to ALL of you,
seems to work now!

---------- Post updated at 07:49 PM ---------- Previous update was at 07:44 PM ----------

next Problem Smilie
Code:
tail -n 10 $log | sed '/ClientUserinfo/!d;s/.*cl_guid\\//;s/\\.*//' | while read
            do
                guid=$REPLY
            done
echo $guid

echoes nothing. I know it beacause of the var is a local one but export and set dont work somehow Smilie

PS: I am on SH-3.2

Last edited by s0lll0s; 04-08-2011 at 02:58 PM..
# 10  
Old 04-08-2011
try to put
Code:
echo $guid

inside the loop
Code:
...
do
     guid=$REPLY
     echo $guid
done

And see if something get displayed ...

also double quote around your variable "$guid"

... otherwise you can still go for

Code:
tail -n 10 $log | sed '/ClientUserinfo/!d;s/.*cl_guid\\//;s/\\.*//' | while read ans
            do
                guid="$ans"
            done
echo "$guid"


Last edited by ctsgnb; 04-08-2011 at 03:12 PM..
# 11  
Old 04-08-2011
This works.
Code:
tail -n 10 $log | sed '/ClientUserinfo/!d;s/.*cl_guid\\//;s/\\.*//' | while read
            do
                echo "$REPLY"
            done
            echo "$REPLY"

echoes
"66F1365D96239BB0C6BB7CE6A74C064B
"
(nothing 2nd time)

if i do

Code:
tail -n 10 $log | sed '/ClientUserinfo/!d;s/.*cl_guid\\//;s/\\.*//' | while read
            do
                guid="$REPLY"
                export guid
                export
            done
            echo "$REPLY"

it showes this:
...
export __CF_USER_TEXT_ENCODING="0x1F5:0:3"
export guid="66F1365D96239BB0C6BB7CE6A74C064B"
but if i quit the script and type
"export"
guid isnt set again Smilie
# 12  
Old 04-08-2011
If you are sure that within the 10 last line of your log file, you will never get more than 9 guid, you can (and if your script has already saved $1 $2 ... arguments in some other variables you can just replace your whole loop with something like :

Code:
set -- `tail -n 10 $log | sed '/ClientUserinfo/!d;s/.*cl_guid\\//;s/\\.*//'`

Code:
echo "$*"

or
Code:
guid1=$1
guid2=$2
guid3=$3
...
guid9=$9
echo "guid1=${guid1} guid2=${guid2} ..."


Last edited by ctsgnb; 04-08-2011 at 03:22 PM..
# 13  
Old 04-08-2011
Code:
sed: 1: "/ClientUserinfo/!d;s/.* ...": bad flag in substitute command: '\'

tried something like that before....
# 14  
Old 04-08-2011
Here is an example with short ID just for demo purpose :

Code:
# tail -9 tst | awk '{print$2}'
199E
1BCC
0A9B
0AA1
15A5
15AD
0AA2
15A6
15AC
# echo $*

# set -- `tail -9 tst | awk '{print$2}'`
# echo $*
199E 1BCC 0A9B 0AA1 15A5 15AD 0AA2 15A6 15AC

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Regex negative look and bash script

My script have to read logfile, and take some action, if in pattern are strings: 1) exit 0 strings pattern ... "INF - Status"... success 2) exit 1 (! as not) strings pattern ... "INF - Status"... !success Simple example, what works #!/bin/bash tail -f regex.log | while read LOGLINE ... (7 Replies)
Discussion started by: kvaikla
7 Replies

2. Shell Programming and Scripting

Using RegEx with variable within bash if [[ ]]

I stumbled upon a problem, which I simplified to this: There is a list of numbers, stored in variable $LIST, lets use `seq 5 25` for demonstration. There is a number that should be compared against this list. For demonstration I use user input - read VALUE I am trying to compare RegEx... (2 Replies)
Discussion started by: Zorbeg
2 Replies

3. Shell Programming and Scripting

Bash regex evaluation not workin

I'm building a script that may received start and end date as parameters. I whant to make it as flexible as possible so I'm accepting epoch and date in a way that "date --date=" command may accept. In order to know if parameter provided is an epoc or a "date --date=" string I evaluate if the value... (2 Replies)
Discussion started by: lramirev
2 Replies

4. UNIX for Dummies Questions & Answers

Regex for (a|b) in bash

I am trying to find files using the following by using simple bash script: if -2014 ]]; then echo "yes";fi What I need to find are any files with date 08-**-2014 so August 2014 any files. I can use if -2014 ]]; then echo "yes";fi That works fine. How do I get files beginning with 08... (1 Reply)
Discussion started by: newbie2010
1 Replies

5. UNIX for Dummies Questions & Answers

Need help with Regex for bash

Hi, I am trying to match this word: hexagon-bx.mydomain.com with regex. I have tried this: "\.*]*$" So far I have not been successful. I also need to make sure that the regex will match words that just have lowercase letters and numbers in them, such as camera01. How can I create such an... (5 Replies)
Discussion started by: newbie2010
5 Replies

6. Shell Programming and Scripting

Hi im new to bash scripting I want to know what does the regex expression do ??

# check host value regex='^(||1|2|25)(\.(||1|2|25)){3}$' if ')" != "" ]; then if ]; then echo host $host not found exit 4 fi elif ]; then echo $host is an invalid host address exit 5 fi (1 Reply)
Discussion started by: kevin298
1 Replies

7. Shell Programming and Scripting

Bash regex help

I've been using the following regex below in a bash script on RHEL 5.5 using version GNU bash, version 3.2.25(1)-release I've tried using the script on RHEL 6.3 which uses GNU bash, version 4.1.2(1)-release I assume there's been alot of changes to bash since that's quite a jump in revisions.... (12 Replies)
Discussion started by: woodson2
12 Replies

8. Shell Programming and Scripting

[BASH] Allow name with spaces (regex)

Hey all, I have a very simple regular expression that I use when I want to allow only letters with spaces. (I know this regex has a lot of shortcomings, but I'm still trying to learn them) isAlpha='^*$'However, when I bring this over to BASH it doesn't allow me to enter spaces. I use the... (3 Replies)
Discussion started by: whyte_rhyno
3 Replies

9. Shell Programming and Scripting

Bash regex

Hello everybody, I'm clearly not an expert in bash scripting as I've written maybe less than 10 scripts in my life. I'm trying to strip an xml string removing every tag in it. I'm using bash substitution to do so, but apparently I missed something about what is a regex for bash ... As an... (4 Replies)
Discussion started by: kerloi
4 Replies

10. Shell Programming and Scripting

regex test in bash

Hi I want to do a regex test and branch based on the test result, but this doesn't seems to work :confused: if \) ]] then echo success else echo failed fi (1 Reply)
Discussion started by: subin_bala
1 Replies
Login or Register to Ask a Question