The UNIX and Linux Forums  


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
Script Perl pour scanner des lignes arrière gholdbhurg De programmation et de script Shell 3 03-18-2008 12:33 PM
Référence: WebObjects 5.4.1 de référence iBot UNIX et Linux News RSS 0 03-11-2008 09:50 PM
Presse-papiers Modifier 0.2.0 (Default branch) iBot Logiciel de presse - RSS News 0 01-02-2008 05:00 PM
retour erreur de référence apoorvasharma80 De programmation et de script Shell 4 08-22-2006 11:25 AM
Référence à deux dimensions de tableaux dans Perl sous photon De programmation et de script Shell 5 04-16-2003 05:52 AM

Closed Thread
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 03-17-2008
cooldude cooldude is offline
Registered User
  
 

Join Date: Mar 2006
Posts: 44
Perl: Pour en revenir référence de modifier s

Mon entrée de texte est le suivant pattens:
Code:
  func_a(3,
         4,
         5);
Je tiens à le remplacer par ceci:
Code:
   
  func_b(3,
         4,
         5,
         6);
J'essaye l'expression suivante, mais il ne fonctionne pas:
Code:
perl -p -e "s/func_a\((.*)?\);/func_b(\1,\n6)/s" < file |more
Des idées? Merci.
  #2 (permalink)  
Old 03-17-2008
KevinADC KevinADC is offline Forum Advisor  
Registered User
  
 

Join Date: Jan 2008
Messages: 731
utiliser $ 1 et $ 6 au lieu de \ 1 et \ 6, voir si cela peut vous aider. Utilisez les guillemets simples autour de ce code, sauf si vous êtes sur les fenêtres.
  #3 (permalink)  
Old 03-18-2008
cooldude cooldude is offline
Registered User
  
 

Join Date: Mar 2006
Posts: 44
Merci, mais qui ne fonctionne pas. En passant, je ne suis pas en utilisant \ 6, mais plutôt \ n6.
  #4 (permalink)  
Old 03-18-2008
rajut1984 rajut1984 is offline
Registered User
  
 

Join Date: Mar 2008
Messages: 3
Utiliser $ 1 au lieu de \ 1

Modifier la commande ci-dessous ...
perl -p-e "s / func_a \ ((.*)? \) / func_b \ ($ 1, \ n6 \) / s" <fichier | more
  #5 (permalink)  
Old 03-18-2008
cooldude cooldude is offline
Registered User
  
 

Join Date: Mar 2006
Posts: 44
Oui, j'ai utilisé au lieu de $ 1 \ 1. Je pense qu'il ne fait aucune différence.
Quand j'ai schémas qui ne sont pas en eux de nouvelles lignes, comme par exemple:
Code:
  func_a(3);
Faire
Code:
perl -p -e "s/func_a\((.*)?\);/func_b($1,\n6)/s" < file |more
fonctionne comme prévu.
  #6 (permalink)  
Old 03-18-2008
ère
Guest
  
 

Messages: n / a
Bits: 0 [Banking]
Le problème est que, avec perl -p, vous êtes seulement la lecture et l'examen d'une ligne à la fois. Ainsi, le pattern match n'est pas appliqué à tout ce qui chevauche une ligne de frontière, même si vous avez le / s modificateur. Vous pouvez corriger cela en lisant toutes les lignes à la fois, avec perl -0777 Ou quelque chose d'équivalent.

Voir aussi le Perl FAQ, qui a une discussion détaillée de cette question.
  #7 (permalink)  
Old 03-18-2008
cooldude cooldude is offline
Registered User
  
 

Join Date: Mar 2006
Posts: 44
perl aurait dû me donner un message d'erreur / d'avertissement parce que le modificateur de s n'est pas applicable à-p.
Quoi qu'il en soit, voici ce que j'ai essayé, mais cette fois, je reçois rien de sortie:
Code:
perl -e -0777 "s/func_a\((.*)?\);/func_b(\1,\n6)/s" < file |more
et
Code:
perl -e "BEGIN {$/=undef} s/func_a\((.*)?\);/func_b(\1,\n6)/s"
Closed Thread

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 03:24 PM.


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