You said you wanted the 11? Why, then, is the second "wrong" wrong?
In your regex, you want 00 in positions 9 and 10. And, you may want to reread the regex documentation, as (man regex):
Quote:
A bracket expression is a list of characters enclosed in "[]". It normally matches any single character from the list
So your bracket expr. seems to have too large a list, including 0 and , . On top, you are deleting the matching lines, so reverse the effect. Try instead:
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)
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
( ?<==)()
yet I was wondering if there is another way of mutching single... (8 Replies)
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)
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)
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)
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)
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)
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)
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)
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
LEARN ABOUT DEBIAN
tie::hash::regex
Tie::Hash::Regex(3pm) User Contributed Perl Documentation Tie::Hash::Regex(3pm)NAME
Tie::Hash::Regex - Match hash keys using Regular Expressions
SYNOPSIS
use Tie::Hash::Regex;
my %h;
tie %h, 'Tie::Hash::Regex';
$h{key} = 'value';
$h{key2} = 'another value';
$h{stuff} = 'something else';
print $h{key}; # prints 'value'
print $h{2}; # prints 'another value'
print $h{'^s'}; # prints 'something else'
print tied(%h)->FETCH(k); # prints 'value' and 'another value'
delete $h{k}; # deletes $h{key} and $h{key2};
or (new! improved!)
my $h : Regex;
DESCRIPTION
Someone asked on Perlmonks if a hash could do fuzzy matches on keys - this is the result.
If there's no exact match on the key that you pass to the hash, then the key is treated as a regex and the first matching key is returned.
You can force it to leap straight into the regex checking by passing a qr'ed regex into the hash like this:
my $val = $h{qr/key/};
"exists" and "delete" also do regex matching. In the case of "delete" all vlaues matching your regex key will be deleted from the hash.
One slightly strange thing. Obviously if you give a hash a regex key, then it's possible that more than one key will match (consider
c<$h{qw/./}>). It might be nice to be able to do stuff like:
my @vals = $h{$pat};
to get all matching values back. Unfortuately, Perl knows that a given hash key can only ever return one value and so forces scalar context
on the "FETCH" call when using the tied interface. You can get round this using the slightly less readable:
my @vals = tied(%h)->FETCH($pat);
ATTRIBUTE INTERFACE
From version 0.06, you can use attributes to define your hash as being tied to Tie::Hash::Regex. You'll need to install the module
Attribute::Handlers.
METHODS
FETCH
Get a value from the hash. If there isn't an exact match try a regex match.
EXISTS
See if a key exists in the hash. If there isn't an exact match try a regex match.
DELETE
Delete a key from the hash. If there isn't an exact match try a regex match.
AUTHOR
Dave Cross <dave@mag-sol.com>
Thanks to the Perlmonks <http://www.perlmonks.org> for the original idea and to Jeff "japhy" Pinyan for some useful code suggestions.
COPYRIGHT
Copyright (C) 2001-8, Magnum Solutions Ltd. All Rights Reserved.
LICENSE
This script is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO perl(1).
perltie(1).
Tie::RegexpHash(1)perl v5.10.0 2008-06-30 Tie::Hash::Regex(3pm)