![]() |
|
|
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 |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
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);
Code:
func_b(3,
4,
5,
6);
Code:
perl -p -e "s/func_a\((.*)?\);/func_b(\1,\n6)/s" < file |more |
|
||||
|
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); Code:
perl -p -e "s/func_a\((.*)?\);/func_b($1,\n6)/s" < file |more |
|
||||
|
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. |
|
||||
|
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 Code:
perl -e "BEGIN {$/=undef} s/func_a\((.*)?\);/func_b(\1,\n6)/s"
|
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|