![]() |
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| grep et d'afficher quelques lignes avant et après | melanie_pfefer | SUN Solaris | 13 | 02-19-2009 11:54 PM |
| grep + lignes après | Janus | De programmation et de script Shell | 4 | 11-03-2006 05:56 PM |
| grep string & n lignes suivante | ashterix | De programmation et de script Shell | 8 | 11-21-2005 11:38 PM |
| Grep sur plusieurs lignes | gundu | De programmation et de script Shell | 13 | 03-25-2005 02:43 PM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
grep-n lignes avant et après
Salut,
est-il possible de grep un modèle qui comprend les "n" lignes avant et après la ligne où le motif a été trouvé? par exemple # qui contient le test.file ligne1 line2 line3 line4 Line5 puis une commande grep de chercher le mot "ligne 3" et la sortie devrait être 1 (ou n), avant que la ligne et de 1 (ou n) la ligne "après" cette ligne. dessired sortie de la commande grep line2 line3 line4 Merci d'avance. |
|
||||
|
Salut,
Il existe un moyen très simple de le faire. Supposons que vous ayez un fichier test.txt avoir «vue» dans certains ligne. Dites, vous souhaitez obtenir 5 lignes ci-dessus et en dessous de la ligne contenant 'view' et la sortie vers un fichier test_one.txt-dire de la manière suivante: grep-C 5 "vue" test.txt> test_one.txt Observe, Sumedha |
|
||||
|
espérons-dessous perl peut vous aider à certaines
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
|
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|