Solaris would be preferable, but I'll take linux or something I can compile. Does such a beast exist?
Asked
Active
Viewed 263 times
3 Answers
19
As far as GNU grep go, this will show you the number of lines before the match:
# grep -B number
Equivilent for after:
# grep -A number
You can download GNU Grep here: http://www.gnu.org/s/grep/
Kvisle
- 4,113
- 23
- 25
-
2And `-C` combines both `A` and `B` in one flag. – Daenyth Oct 20 '11 at 19:15
6
You can get GNU grep and it's dependencies for Solaris from sunfreeware.com either as a binary download in pkg format which installs in /usr/local/bin or as a source package.
user9517
- 114,104
- 20
- 206
- 289
2
A small awk script will also work:
#!/usr/bin/awk -f
BEGIN { context=3; }
{ add_buffer($0) }
/pattern/ { print_buffer() }
function add_buffer(line)
{
buffer[NR % context]=line
}
function print_buffer()
{
for(i = max(1, NR-context+1); i <= NR; i++) {
print buffer[i % context]
}
}
function max(a,b)
{
if (a > b) { return a } else { return b }
}
replace /pattern/
with the actual regular expression or pattern to search for.
wnoise
- 121
- 3