Grep
Grep is a great powerful tool that print lines matching certain patterns.
Some example Regular Expressions using Grep:
Remove BOTs from the website access.log file:
grep -Ev '|spider|slurp|yandex|bingbot|majestic12' access.log > access2.log
Show only City/Towns in Massachusetts that have at least 19 characters
grep -x '.{10}' MassachusettsCityTowns.txt
Highlight the Search Results
export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8' grep '.{10}' MassachusettsCityTowns.txt
Using Grep in Bash Script
This is a script that I wrote a long time ago, that I used to check to see how many times a certain error would appear in a log file.
#!/bin/bash itoday=$(date +"%d/%b/%Y") todayerrors=$(cat grep $itoday /server/debug.log | grep $itoday | grep "Exception" | wc -l) echo "# ------------------------------------------------------------" echo "# Number of Errors Found on $itoday : $todayerrors" echo "# ------------------------------------------------------------" echo "# Raw data" grep -C 10 "Exception" /mnt/$i/server/debug.log
This script will count out the total number of errors that were generated today. Then display the RAW lines. This is useful to have handy to see if a particular error is occurring quite often.
Quick RegEx Table
This is a quick regular expression table that I found many years ago. It's a quick reminder of some of the common grep commands:
####################################################### # RegExpression Table ####################################################### Reg-expr | Description -----------+--------------------------------------------------- . | Matches any character except newline [a-z0-9] | Matches any single character of the set [^a-z0-9] | Matches any single character not in set d | Matches a digit, i.e., [0-9] w | Matches a alpha-numeric character, i.e., [a-zA-Z0-9_] W | Matches a non-word character, i.e., [^a-zA-Z0-9_] metachar | Matches the character itself, i.e., |, *, + x? | Matches 0 or 1 x's, where x is any of the above x* | Matches 0 or more x's x+ | Matches 1 or more x's x{m,n} | Matches at least m x's but no more than n foo|bar | Matches one of foo or bar (x) | Brackets a regular expression (this is a bit of a lie :-) b | Matches a word boundary