The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



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

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 01-21-2008
airman_ole airman_ole is offline
Registered User
  
 

Join Date: Jan 2008
Messages: 2
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.
  #2 (permalink)  
Old 01-21-2008
vino's Avatar
vino vino is offline Forum Staff  
Supporter (in vino veritas)
  
 

Join Date: Feb 2005
Lieu: Bangalore, Inde
Posts: 2798
Si vous avez des GNU grep, il est alors possible. De man grep

Code:
       -A NUM, --after-context=NUM
              Print NUM lines  of  trailing  context  after  matching  lines.
              Places  a  line  containing  --  between  contiguous  groups of
              matches.

       -B NUM, --before-context=NUM
              Print  NUM  lines  of  leading  context  before matching lines.
              Places a  line  containing  --  between  contiguous  groups  of
              matches.
  #3 (permalink)  
Old 01-21-2008
Ygor's Avatar
Ygor Ygor is offline Forum Staff  
Modérateur
  
 

Join Date: Oct 2003
Lieu: -31.96,115.84
Posts: 1,409
grep et d'afficher quelques lignes avant et après
  #4 (permalink)  
Old 07-03-2009
Sumedha Sobti Sumedha Sobti is offline
Registered User
  
 

Date d'inscription: juillet 2009
Lieu: Inde
Messages: 9
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
  #5 (permalink)  
Old 07-03-2009
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Lieu: NM
Posts: 5763
S'il vous plaît noter: beaucoup de ces exemples, seul le travail avec GNU des outils, pas toutes les versions de grep.
  #6 (permalink)  
Old 07-05-2009
summer_cherry summer_cherry is offline Forum Advisor  
Registered User
  
 

Date d'inscription: juin 2007
Lieu: Beijing Chine
Posts: 1088
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
Reply

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 05:05 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0