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?
+4
A:
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 -E or egrep, not grep -e as that's a different option for lists of patterns.
Dave Webb
2008-09-02 08:14:22