![]() |
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier. |
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| grep und zeigt einige Zeilen vor und nach | melanie_pfefer | SUN Solaris | 13 | 02-19-2009 11:54 PM |
| grep + Linien nach | Janus | Shell Programmierung und Scripting | 4 | 11-03-2006 05:56 PM |
| grep string & nächsten n Zeilen | ashterix | Shell Programmierung und Scripting | 8 | 11-21-2005 11:38 PM |
| Grep über mehrere Zeilen | gundu | Shell Programmierung und Scripting | 13 | 03-25-2005 02:43 PM |
![]() |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|
|
||||
|
grep-n Zeilen vor und nach
Hi,
Ist es möglich, grep ein Muster, das die "n"-Zeilen vor und nach der Zeile, wo das Muster gefunden wurden? z. B. # Diese enthält die test.file line1 line2 Linie 3 Line4 line5 dann ein grep-Kommando für die Suche das Wort "Linie 3" und die Ausgabe sollte 1 (oder n) Zeile vor, dass Linien-und 1 (oder n) Zeile "nach" dieser Linie. dessired Ausgabe des grep Befehls line2 Linie 3 Line4 Vielen Dank im Voraus. |
|
||||
|
Hi,
Es ist eine sehr einfache Art und Weise, dies zu tun. Sie haben eine Datei test.txt mit "Blick" in line. Sprich, Sie möchten 5 Zeilen über und unter der Zeile mit "Ansicht" und Ausgabe in einer Datei zu sagen, test_one.txt Verwenden Sie die folgenden: grep-C-5 "Ansicht" test.txt> test_one.txt Grüße, Sumedha |
|
||||
|
hoffe, dass unter perl kann Ihnen dabei helfen, einige
Code:
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
|
![]() |
| Lesezeichen |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|