![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
#perl -ne 'print if /^=pod/ .. /^=cut/' test.pl
Il est possible de remplacer if par @b/unless@b pour exclure les ligne comprises entre les deux délimiteurs. On peut tout autant remplacer la recherche de la chaine par des numéros de lignes. Pour supprimer les lignes 10 à 12 il faut taper:
#perl -ne 'print unless 10 .. 12'
#perl -lane 'print $F[0] ' e.csv
Attention, la première colonne commence à l'indice 0, la seconde est 1 et ainsi de suite.
#perl -e "print int(rand(6))+1" #perl -e "print int(rand(101))"
#perl -p -i.bak -e 's/toto/tata/g' test.txt
L'option -i.bak va créer un fichier @i/ test.txt.bak @i.
Vous pouvez aussi modifier plusieurs fichiers d'un coup en utilisant les jokers (*.txt par exemple). Vous pouvez utiliser des expression comme par exemple \btoto\b pour rechercher le mot toto seul. L'option @b--i) peut aussi s'utiliser avec les commandes d'extraction. Conserver la première ligne d'un fichier revient à écrire:
#perl -i.bak -ne -i 'print if 1 .. 1'
#perl -e 'print 34+56, "\n"' #perl -e 'print sqrt(16)' #x=234 #perl -e "print sqrt($x)" 15.2970585407784 #perl -e 'print sqrt($x)'
On peut utiliser une variable. comme dans l'exemple. Il faut que x soit fixé par le shell.
#perl -e 'for ($i = 0; $i < 10; $i++) { print $i," " }; ' 0 1 2 3 4 5 6 7 8 9 #perl -e 'for (1..10) { print $_," " }; ' 1 2 3 4 5 6 7 8 9 10 #for i in $(perl -e 'for (0..5) { print $_," " };) do lscfg -vl hdisk$i done
Le dernier exemple montre comment on utilise Perl pour lister la configuration des 6 permiers disques du système.
#a="essai" #perl -e "print substr($a,0,3)" ess #a=azerty #perl -e " print length($a)" 6
a=`perl -e "use Time::Local;print timelocal(0,10,9,13,8,2006);"`
ordre seconde minute heure jour mois -1 (attention!) annee dans l'autre sens:
#perl -e "use Time::Local;print scalar localtime($a);"
#perl -M'Sys::Hostname' -e 'print hostname(), "\n"'