Солярис был бы предпочтительнее, но я возьму linux или что-нибудь, что я могу скомпилировать. Такой зверь существует?
Что касается GNU grep, это покажет вам количество строк до совпадения:
# grep -B number
Эквивалент после:
# grep -A number
Вы можете скачать GNU Grep здесь: http://www.gnu.org/s/grep/
Вы можете получить GNU grep и его зависимости для Solaris из sunfreeware.com либо в виде двоичной загрузки в формате pkg, которая устанавливается в / usr / local / bin, либо в виде пакета с исходным кодом.
Также подойдет небольшой скрипт на awk:
#!/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 }
}
заменить /pattern/
с фактическим регулярным выражением или шаблоном для поиска.