![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| grep и отображать несколько строк до и после | melanie_pfefer | SUN Solaris | 13 | 02-19-2009 11:54 PM |
| grep + строки после | Янус | Shell программирование и сценарии | 4 | 11-03-2006 05:56 PM |
| grep строка И следующий N строк | ashterix | Shell программирование и сценарии | 8 | 11-21-2005 11:38 PM |
| Grep по нескольким направлениям | gundu | Shell программирование и сценарии | 13 | 03-25-2005 02:43 PM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
grep-N строк до и после
Привет,
можно grep шаблон, который будет включать в "N" линии до и после строки, где структуры были найдены? например # этом содержится test.file LINE1 line2 Line3 line4 line5 затем команду grep для поиска слова "Line3" и выходе должна составлять 1 (или N) линии до этой строки и 1 (или N) линии "после" этой линии. dessired выходе из команды grep line2 Line3 line4 Спасибо заранее. |
|
||||
|
Привет,
Существует очень простой способ сделать это. Давайте говорить у вас есть файл test.txt с "Вид" в несколько строк. Скажем, вы хотели бы получить 5 строк выше и ниже строки, содержащие "Вид" и вывод в файл, говорят test_one.txt использовать следующие: grep-C 5 "Вид" test.txt> test_one.txt Привет, Sumedha |
|
||||
|
Обратите внимание: многие из этих примеров работать только с GNU Средства, не во всех версиях grep.
|
|
||||
|
надеюсь, ниже Perl может помочь вам Код:
sub lines_grep{
my($pattern,$line,$flag,$n,@tmp)=(@_);
while(<DATA>){
if($_=~/$pattern/){
print @tmp;
$flag=1;
}
else{
if($#tmp < $line-1){
push @tmp, $_;
}
else{
shift @tmp;
push @tmp, $_;
}
}
if ($flag==1){
print $_ ;
$n++;
}
if($n>$line){
last;
}
}
}
#lines_grep(pattern,3);
lines_grep(4,2);
__DATA__
1
2
3
4
pattern
6
7
8
9
|
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|