Linux Know-How provides a collection of introductory texts on often needed Linux skills. |
Home Bash Guide for Beginners Regular expressions Grep and regular expressions | |||||||||||||
See also: What is grep?, SED Commands | |||||||||||||
Search the VIAS Library | Index | |||||||||||||
Grep and regular expressions
Line and word anchorsFrom the previous example, we now exclusively want to display lines starting with the string "root":
If we want to see which accounts have no shell assigned whatsoever, we search for lines ending in ":":
To check that PATH is exported in ~/.bashrc, first select "export" lines and then search for lines starting with the string "PATH", so as not to display MANPATH and other possible paths:
Similarly, \> matches the end of a word. If you want to find a string that is a separate word (enclosed by spaces), it is better use the -w, as in this example where we are displaying information for the root partition:
If this option is not used, all the lines from the file system table will be displayed. Character classesA bracket expression is a list of characters enclosed by "[" and "]". It matches any single character in that list; if the first character of the list is the caret, "^", then it matches any character NOT in the list. For example, the regular expression "[0123456789]" matches any single digit. Within a bracket expression, a range expression consists of two characters separated by a hyphen. It matches any single character that sorts between the two characters, inclusive, using the locale's collating sequence and character set. For example, in the default C locale, "[a-d]" is equivalent to "[abcd]". Many locales sort characters in dictionary order, and in these locales "[a-d]" is typically not equivalent to "[abcd]"; it might be equivalent to "[aBbCcDd]", for example. To obtain the traditional interpretation of bracket expressions, you can use the C locale by setting the LC_ALL environment variable to the value "C". Finally, certain named classes of characters are predefined within bracket expressions. See the grep man or info pages for more information about these predefined expressions.
In the example, all the lines containing either a "y" or "f" character are first displayed, followed by an example of using a range with the ls command. WildcardsUse the "." for a single character match. If you want to get a list of all five-character English dictionary words starting with "c" and ending in "h" (handy for solving crosswords):
If you want to display lines containing the literal dot character, use the -F option to grep. For matching multiple characters, use the asterisk. This example selects all words starting with "c" and ending in "h" from the system's dictionary:
If you want to find the literal asterisk character in a file or output, use grep -F:
|
|||||||||||||
Home Bash Guide for Beginners Regular expressions Grep and regular expressions |