GNU/Linux >> Tutoriels Linux >  >> Linux

8 arguments de ligne de commande Perl impressionnants que vous devriez connaître

Les options de ligne de commande en Perl pourraient être utiles pour effectuer efficacement des tâches plus petites.

Dans cet article, voyons comment utiliser les options de ligne de commande Perl pour effectuer les tâches suivantes :

  • Modifier le contenu du fichier
  • Séparateur de ligne de poignée
  • Vérifier les erreurs de syntaxe
  • Charger les modules
  • Effectuer une boucle
  • Exécuter le code perl
  • Définir le séparateur de ligne d'entrée
  • Diviser la ligne d'entrée
  • etc.,

1. Option Perl -i :Modifier le contenu du fichier

Il ouvre les fichiers un par un et remplace le contenu par STDOUT.

Utilisons le fichier sample.txt suivant pour convertir son contenu en majuscules, comme indiqué ci-dessous.

$ cat sample.txt
Practical Extraction Report Language

$ perl -pi  -e “tr/[a-z]/[A-Z]/” sample.txt

$ cat sample.txt
PRACTICAL EXTRACTION REPORT LANGUAGE

Vous pouvez également sauvegarder le fichier d'origine comme indiqué ci-dessous :

$ perl -pi.bak  -e “tr/[a-z]/[A-Z]/” sample.txt

$ cat sample.txt
PRACTICAL EXTRACTION REPORT LANGUAGE

$ cat sample.txt.bak
Practical Extraction Report Language

Pour déboguer un programme Perl, utilisez le débogueur Perl comme nous l'avons expliqué précédemment.

2. Option Perl -l :Gestion des séparateurs de lignes

Le séparateur de ligne prend la valeur octale comme argument. Voici quelques exemples de séparateurs courants et leur valeur octale.

Character    Octal Value
=========    =========
new line(\n) 012
tab(\t)      011
space        040
&            046

Remarque :utilisez la commande "man ascii" pour connaître la valeur octale de tous les caractères.

Exemple d'utilisation du séparateur de ligne :

$ perl -p -l046 -e “tr/[a-z]/[A-Z]/”;
bala

Output :

BALA&

Reportez-vous également à 6 fonctions d'évaluation Perl pour une lecture supplémentaire.

3. Option Perl -c :vérifier les erreurs de syntaxe

L'option -c compile votre programme sans l'exécuter pour s'assurer qu'aucune erreur de syntaxe n'est présente dans votre programme.

$ perl -c sample.pl

4. Option Perl -M :pour le chargement des modules

Avec l'option Perl -M, nous pouvons charger les modules souhaités comme indiqué ci-dessous.

$ perl -MFile::Copy -e ‘move(“sample.txt”,”/tmp”);’

L'option -m charge également les modules mais n'importe rien. Voici la différence :

  • -MFile::Copy est égal à "use File::Copy ; "
  • -mFile::Copy est égal à "use File::Copy()"

Nous avons également discuté de l'option -M dans nos 20 conseils de programmation Killer Perl précédents.

5. Option Perl -n et -p :boucle implicite

L'option -n encapsule votre code dans la boucle comme indiqué ci-dessous.

while(<>) {
# perl code
}

L'extrait suivant décrit mieux cela.

while(<>) {
$_ =~ tr/[a-z]/[A-Z]/;
}

En utilisant -n, nous pouvons réécrire l'extrait de code ci-dessus comme indiqué ci-dessous.

$ perl -n -e ‘tr/[a-z]/[A-Z]/;print’

L'option -p encapsule votre code dans la boucle comme indiqué ci-dessous.

while(<>) {
# perl code
print;
}

L'extrait suivant décrit mieux cela.

while(<>) {
$_ =~ tr/[a-z]/[A-Z]/;
print;
}

En utilisant -p, nous pouvons réécrire l'extrait de code ci-dessus comme indiqué ci-dessous.

$ perl -p -e “tr/[a-z]/[A-Z]/”;

Si vous développez beaucoup de code Perl, vous devriez lire le livre des meilleures pratiques Perl.

6. Option Perl -e :exécute le code perl dans la ligne de commande elle-même

Un programme Perl simple ou court peut être écrit dans la ligne de commande elle-même avec cette option comme indiqué ci-dessous.

$ perl -e “print \”Username : $ENV{USER}”

7. Option Perl -0 : saisir un séparateur d'enregistrements

En utilisant l'option -0, nous pouvons changer le "séparateur d'enregistrement d'entrée" de nouvelle ligne à autre chose comme indiqué ci-dessous.

$ perl -p -0046 -e “tr/[a-z]/[A-Z]/”;
bala
raja&

Output :

BALA
RAJA&

Dans l'exemple ci-dessus, 046 est la valeur octale du caractère "&". Ainsi, après avoir reçu le caractère &, Perl le considère comme la fin d'un enregistrement et effectue ensuite l'opération de traduction.

8. Option Perl -a :fractionner la ligne d'entrée

Il divise le $_ en @F avec le délimiteur comme espace.

L'exemple suivant illustre l'option -a.

$ cat emp_salary.txt
bala     10000
rajesh  12300
kumar 14000

$ perl -n -l012  -a -e ‘print “$F[1]“‘  emp_salary.txt
10000
12300
14000

Par défaut, il prend de l'espace comme délimiteur et effectue l'opération de fractionnement. Le délimiteur peut être modifié en utilisant l'option -F comme indiqué ci-dessous.

$ cat emp_salary.txt
bala:10000
rajesh:12300
kumar:14000

$ perl -n -l012  -F: -a -e ‘print “$F[1]“‘  emp_salary
10000
12300
14000

Linux
  1. 14 ports réseau courants que vous devez connaître

  2. 10 commandes que tout utilisateur de Linux devrait connaître

  3. Exécuter des scripts Perl/PHP à partir de la ligne de commande

  4. Nagios :comment activer les arguments de ligne de commande check_nrpe

  5. 15 exemples d'extension de l'historique Linux Bash à connaître

30 faits étonnants sur Linux que vous devriez savoir

9 faits étonnants sur SUSE Linux que vous devez savoir

Quelques alternatives à l'utilitaire de ligne de commande "top" que vous voudrez peut-être connaître

Top 50+ des commandes Linux que vous DEVEZ connaître

Comment lire les arguments de ligne de commande dans les scripts shell ?

Développer rapidement une interface graphique pour la ligne de commande