Sponsored Content
Full Discussion: regular expresion question
Top Forums UNIX for Dummies Questions & Answers regular expresion question Post 55494 by zazzybob on Monday 13th of September 2004 11:35:33 AM
Old 09-13-2004
I think having the "#" character there is dodgy because the shell is probably treating the end of the filename as a comment.

I'd also advise against using a "?" as a "regular" character, seeing as it's a shell wildcard - that will end up causing problems somewhere down the line too. Use an underscore instead.

Cheers
ZB
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Regular Expression Question

Hi - I am trying to ignore the following items from a list. lp0 lp11 lp12 lp14 The following code works fine, but I was wondering if there was a tidier way to write the lp regular expression? egrep -v "lp" Thanks in advance. (3 Replies)
Discussion started by: Krispy
3 Replies

2. Shell Programming and Scripting

Variable regular expresion in awk.

:confused: Is there any way to use in awk a regular exprexion with a format not previusly known? I mean something like /VAR/ ,obviously VAR is the variable exprexion. Thak you all in advance. (4 Replies)
Discussion started by: Klashxx
4 Replies

3. Shell Programming and Scripting

Regular expression question

hi i need to wipe out something from giving path i have some thing like that : pwd | sed 's/.*foo//' it is working fine when I have path like : /blah/balh1/foo/moo so it erasing me all that comes before the foo including the foo but I have problem when I have dir by the name of... (7 Replies)
Discussion started by: umen
7 Replies

4. UNIX for Dummies Questions & Answers

Question on Regular Expression

Folks; Could some one tell me what these 2 regular expressions mean: */(*)/* (\d\d\d\d/\d\d/\d\d/*?) (14 Replies)
Discussion started by: Katkota
14 Replies

5. Shell Programming and Scripting

help in if expresion

Hi All, Is my script still error?? i try to running and still error?? need help (1 Reply)
Discussion started by: justbow
1 Replies

6. Shell Programming and Scripting

Regular expresion

Here's my script read number if echo $number | grep "" I want this "if" statement to return true only when numbers without letters is matched. For example 45 - true, 923 - true, r5 - false, tg/f - false and so on. In this script even a single digit number like "3" returns false. Thanks. (1 Reply)
Discussion started by: eXPlosion
1 Replies

7. Shell Programming and Scripting

KShell regular expresion

Hi, I would like to know if the parameter i am passing to a shell script is contain the following charachter : ASM. I belive that i should use regular expresion here. Can one help ? Bellow is the "if statment" i need to fix with the reg exp: if ; then #echo "IT IS AN RDBMS... (4 Replies)
Discussion started by: yoavbe
4 Replies

8. Shell Programming and Scripting

Regular Expressions question

Hi I have a multiple line file in the following format: .... 1095 1000 0011 0000 1000 0101 0100 1100 1111 1096 1000 0011 0000 1000 0101 0100 1100 1111 1111 1000 0011 0010 1000 1001 0100 1100 1101 1112 1000 0011 0000 1000 0001 0100 1100 ... (11 Replies)
Discussion started by: aoussenko
11 Replies

9. Shell Programming and Scripting

Help on the regular expresion =~

my $hw_plf_desc = `grep hw_platform $NODE_CFG_FILE`; if($hw_plf_desc =~ /Netra X4270 X4446A M2 /) Could someone explain the use of =~ .... this works only for perl . What is the alternate for the same in shell . Could any one convert this to shell script (7 Replies)
Discussion started by: frintocf
7 Replies

10. Shell Programming and Scripting

String search using Regular Expresion

Hi, I am getting a string in the file, I want to parse the srting and extract the percentage from the string. Sample string are - ASAD112_sd12.34%adnmfk ASAsds_1.34%adnmfk ASAdf 2 sd12.34%adnmfk ASAD112_sd 12.34% adnmfk ASAD112_sd12.34% adnmfk I want to extract the numeric value... (3 Replies)
Discussion started by: meetvipin
3 Replies
GLOB(7) 						     Linux Programmer's Manual							   GLOB(7)

NAME
glob - Globbing pathnames DESCRIPTION
Long ago, in Unix V6, there was a program /etc/glob that would expand wildcard patterns. Soon afterwards this became a shell built-in. These days there is also a library routine glob(3) that will perform this function for a user program. The rules are as follows (POSIX 1003.2, 3.13). WILDCARD MATCHING
A string is a wildcard pattern if it contains one of the characters `?', `*' or `['. Globbing is the operation that expands a wildcard pat- tern into the list of pathnames matching the pattern. Matching is defined by: A `?' (not between brackets) matches any single character. A `*' (not between brackets) matches any string, including the empty string. Character classes An expression `[...]' where the first character after the leading `[' is not an `!' matches a single character, namely any of the charac- ters enclosed by the brackets. The string enclosed by the brackets cannot be empty; therefore `]' can be allowed between the brackets, provided that it is the first character. (Thus, `[][!]' matches the three characters `[', `]' and `!'.) Ranges There is one special convention: two characters separated by `-' denote a range. (Thus, `[A-Fa-f0-9]' is equivalent to `[ABCDE- Fabcdef0123456789]'.) One may include `-' in its literal meaning by making it the first or last character between the brackets. (Thus, `[]-]' matches just the two characters `]' and `-', and `[--/]' matches the three characters `-', `.', `/'.) Complementation An expression `[!...]' matches a single character, namely any character that is not matched by the expression obtained by removing the first `!' from it. (Thus, `[!]a-]' matches any single character except `]', `a' and `-'.) One can remove the special meaning of `?', `*' and `[' by preceding them by a backslash, or, in case this is part of a shell command line, enclosing them in quotes. Between brackets these characters stand for themselves. Thus, `[[?*]' matches the four characters `[', `?', `*' and `'. PATHNAMES
Globbing is applied on each of the components of a pathname separately. A `/' in a pathname cannot be matched by a `?' or `*' wildcard, or by a range like `[.-0]'. A range cannot contain an explicit `/' character; this would lead to a syntax error. If a filename starts with a `.', this character must be matched explicitly. (Thus, `rm *' will not remove .profile, and `tar c *' will not archive all your files; `tar c .' is better.) EMPTY LISTS
The nice and simple rule given above: `expand a wildcard pattern into the list of matching pathnames' was the original Unix definition. It allowed one to have patterns that expand into an empty list, as in xv -wait 0 *.gif *.jpg where perhaps no *.gif files are present (and this is not an error). However, POSIX requires that a wildcard pattern is left unchanged when it is syntactically incorrect, or the list of matching pathnames is empty. With bash one can force the classical behaviour by setting allow_null_glob_expansion=true. (Similar problems occur elsewhere. E.g., where old scripts have rm `find . -name "*~"` new scripts require rm -f nosuchfile `find . -name "*~"` to avoid error messages from rm called with an empty argument list.) NOTES
Regular expressions Note that wildcard patterns are not regular expressions, although they are a bit similar. First of all, they match filenames, rather than text, and secondly, the conventions are not the same: e.g., in a regular expression `*' means zero or more copies of the preceding thing. Now that regular expressions have bracket expressions where the negation is indicated by a `^', POSIX has declared the effect of a wildcard pattern `[^...]' to be undefined. Character classes and Internationalization Of course ranges were originally meant to be ASCII ranges, so that `[ -%]' stands for `[ !"#$%]' and `[a-z]' stands for "any lowercase let- ter". Some Unix implementations generalized this so that a range X-Y stands for the set of characters with code between the codes for X and for Y. However, this requires the user to know the character coding in use on the local system, and moreover, is not convenient if the collating sequence for the local alphabet differs from the ordering of the character codes. Therefore, POSIX extended the bracket notation greatly, both for wildcard patterns and for regular expressions. In the above we saw three types of item that can occur in a bracket expression: namely (i) the negation, (ii) explicit single characters, and (iii) ranges. POSIX specifies ranges in an internationally more useful way and adds three more types: (iii) Ranges X-Y comprise all characters that fall between X and Y (inclusive) in the currect collating sequence as defined by the LC_COL- LATE category in the current locale. (iv) Named character classes, like [:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:space:] [:upper:] [:xdigit:] so that one can say `[[:lower:]]' instead of `[a-z]', and have things work in Denmark, too, where there are three letters past `z' in the alphabet. These character classes are defined by the LC_CTYPE category in the current locale. (v) Collating symbols, like `[.ch.]' or `[.a-acute.]', where the string between `[.' and `.]' is a collating element defined for the cur- rent locale. Note that this may be a multi-character element. (vi) Equivalence class expressions, like `[=a=]', where the string between `[=' and `=]' is any collating element from its equivalence class, as defined for the current locale. For example, `[[=a=]]' might be equivalent to `[aaaaa]' (warning: Latin-1 here), that is, to `[a[.a-acute.][.a-grave.][.a-umlaut.][.a-circumflex.]]'. SEE ALSO
sh(1), glob(3), fnmatch(3), locale(7), regex(7) Unix 1998-06-12 GLOB(7)
All times are GMT -4. The time now is 06:40 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy