readded udpated scripts directory
This commit is contained in:
parent
cd053a412a
commit
f3117c81d9
84 changed files with 3210 additions and 0 deletions
74
scripts/cgrep
Executable file
74
scripts/cgrep
Executable file
|
|
@ -0,0 +1,74 @@
|
|||
#!/bin/bash
|
||||
|
||||
# cgrep--grep with context display and highlighted pattern matches
|
||||
|
||||
# Usage Example:
|
||||
# cgrep -c 1 Introduction bash_copy.txt
|
||||
|
||||
context=0
|
||||
esc="^["
|
||||
boldon="${esc}[1m" boldoff="${esc}[22m"
|
||||
sedscript="/tmp/cgrep.sed.$$"
|
||||
tempout="/tmp/cgrep.$$"
|
||||
|
||||
function showMatches
|
||||
{
|
||||
matches=0
|
||||
|
||||
echo "s/$pattern/${boldon}$pattern${boldoff}/g" > $sedscript
|
||||
|
||||
for lineno in $(grep -n "$pattern" $1 | cut -d: -f1)
|
||||
do
|
||||
if [ $context -gt 0 ] ; then
|
||||
prev="$(( $lineno - $context ))"
|
||||
|
||||
if [ $prev -lt 1 ] ; then
|
||||
# This results in "invalid usage of line address 0."
|
||||
prev="1"
|
||||
fi
|
||||
next="$(( $lineno + $context ))"
|
||||
|
||||
if [ $matches -gt 0 ] ; then
|
||||
echo "${prev}i\\" >> $sedscript
|
||||
echo "----" >> $sedscript
|
||||
fi
|
||||
echo "${prev},${next}p" >> $sedscript
|
||||
else
|
||||
echo "${lineno}p" >> $sedscript
|
||||
fi
|
||||
matches="$(( $matches + 1 ))"
|
||||
done
|
||||
|
||||
if [ $matches -gt 0 ] ; then
|
||||
sed -n -f $sedscript $1 | uniq | more
|
||||
fi
|
||||
}
|
||||
|
||||
trap "$(which rm) -f $tempout $sedscript" EXIT
|
||||
|
||||
if [ -z "$1" ] ; then
|
||||
echo "Usage: $0 [-c X] pattern {filename}" >&22m
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$1" = "-c" ] ; then
|
||||
context="$2"
|
||||
shift; shift
|
||||
elif [ "$(echo $1|cut -c1-2)" = "-c" ] ; then
|
||||
context="$(echo $1 | cut -c3-)"
|
||||
shift
|
||||
fi
|
||||
|
||||
pattern="$1"; shift
|
||||
|
||||
if [ $# -gt 0 ] ; then
|
||||
for filename ; do
|
||||
echo "----- $filename -----"
|
||||
showMatches $filename
|
||||
done
|
||||
else
|
||||
cat - > $tempout # Save stream to a temp file.
|
||||
showMatches $tempout
|
||||
fi
|
||||
|
||||
exit 0
|
||||
Loading…
Add table
Add a link
Reference in a new issue