Here's a basic regex technique that I've never managed to remember. Let's say I'm using a fairly generic regex implementation (e.g., grep or grep -E). If I were to do a list of files and match any that end in either ".sty" or ".cls", how would I do that?
-
egrep "\.sty$|\.cls$"From Peter Hoffmann -
This regex:
\.(sty|cls)\z
will match any string ends with .sty or .cls
EDIT:
for grep \z should be replaced with $ i.e. \.(sty|cls)$ as jelovirt suggested.From aku -
ls | grep -E "\.(sty|cls)$"\.matches literally a"."- an unescaped.matches any character(sty|cls)- match"sty"or"cls"- the | is anorand the brackets limit the expression.$forces the match to be at the end of the line
Note, you want
grep -Eoregrep, notgrep -eas that's a different option for lists of patterns.From Dave Webb
0 comments:
Post a Comment