Passer un argument à des programmes Perl à partir de Bash
Résoluartagon7 Messages postés 417 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrais savoir s'il est possible, dans un script Bash, de passer un argument (ici, la variable contiendrait simplement une lettre) à des programmes Perl.
Tous mes programmes Perl fonctionnent bien. Cependant, lorsque la première lettre des mots change, je dois changer le nom de tous les fichiers .txt en changeant la lettre.
Par exemple, si j'ai fait le traitement des deux fichiers suivants :
mots-a-animaux.txt
mots-a-fruits.txt
et que je veuille faire le traitement des fichiers désignés par une autre lettre, 'b' par exemple,
mots-b-animaux.txt
mots-b-fruits.txt
je dois aller dans chaque script Perl et changer la lettre 'a' pour la lettre 'b' dans le nom de chaque fichier. Je voudrais changer la lettre au début de mon script Bash et la passer comme argument aux scripts Perl.
A) Mon programme Bash (appel d'un seul programme Perl, pour fin de simplicité) est :
#!/bin/bash
*
lettre="a"
*
perl comptage.pl (lettre) # Ça ne fonctionne pas.
*
*
B) et mon script Perl comptage.pl (qui compte les lignes de chaque fichier) est :
*
#!/usr/bin/perl
*
open(FICHIER_ENTREE_1, "../2-Entrees/mots-$lettre-animaux.txt") or die "Le fichier ne s'ouvre pas: $!";
open(FICHIER_ENTREE_2, "../2-Entrees/mots-$lettre-fruits.txt") or die "Le fichier ne s'ouvre pas: $!";
*
open(FICHIER_SORTIE, ">../3-Sorties/mots-$lettre-sortie.txt") or die "Le fichier ne s'ouvre pas: $!";
*
while(<FICHIER_ENTREE_1>)
{$i=++$i;}
print FICHIER_SORTIE "$i\n";
*
$i=0;
while(<FICHIER_ENTREE_2>)
{$i=++$i;}
print FICHIER_SORTIE "$i\n";
*
*
close FICHIER_ENTREE_1;
close FICHIER_ENTREE_2;
close FICHIER_SORTIE;
J'ai essayé ces deux scripts mais ça ne fonctionne pas.
Merci
- Passer un argument à des programmes Perl à partir de Bash
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Passer de qwerty a azerty - Guide
- Passer de windows 7 à windows 10 - Accueil - Mise à jour
- Passer de majuscule à minuscule - Guide
- Comment faire une recherche à partir d'une photo - Guide
1 réponse
Bonjour,
Tu peux passer des arguments lorsque tu appelles des scripts
regardes du côte de ARGV
https://perlmaven.com/argv-in-perl
Salut jordane45,
J'ai lu ta référence. Ça a fonctionné.
Pour celles et ceux que ça intéresse, voici mes deux scripts :
*
* Script Bash
*
*
* Script Perl comptage.pl
*
Au début, ça ne fonctionnait pas. J'avais mis, comme argument, lettre au lieu de $lettre.
Merci beaucoup.