Une évolution de sed/awk qui est intéressante pour le scripting unix est Perl.
Exemples parlants :
changer la version dans tous les fichiers .c du répertoire :
$ perl -pi -e 's/Version: 4.3/Version:4.4/' *.c
compter toutes les lignes contenant "foo" dans le fichier "bar" :
$ perl -ne '$foo++ if /foo/; END { print "total: $foo\n" }' bar
Pour apprendre Perl il y a, en plus du camel book trouvable facilement chez O'Reilly, le Perl Cookbook qui a une approche très pratique qui en fait un guide de référence très pratique (plutôt qu'un livre à lire en entier).
Example parlant en provenance du cookbook :
-=-=---=-=---=-=---=-=---=-=---=-=--
#!/usr/bin/perl
# countfrom - count number of messages from each sender
$filename = $ARGV[0] || "-";
open(FILE, "<$filename") or die "Can't open $filename : $!";
# meuh
Posté par gc . En réponse au message Maîtrise d'outils de scripts. Évalué à 2.
Exemples parlants :
changer la version dans tous les fichiers .c du répertoire :
$ perl -pi -e 's/Version: 4.3/Version:4.4/' *.c
compter toutes les lignes contenant "foo" dans le fichier "bar" :
$ perl -ne '$foo++ if /foo/; END { print "total: $foo\n" }' bar
Pour apprendre Perl il y a, en plus du camel book trouvable facilement chez O'Reilly, le Perl Cookbook qui a une approche très pratique qui en fait un guide de référence très pratique (plutôt qu'un livre à lire en entier).
Example parlant en provenance du cookbook :
-=-=---=-=---=-=---=-=---=-=---=-=--
#!/usr/bin/perl
# countfrom - count number of messages from each sender
$filename = $ARGV[0] || "-";
open(FILE, "<$filename") or die "Can't open $filename : $!";
while() {
if (/^From: (.*)/) { $from{1ドル}++ }
}
foreach $person (sort keys %from) {
print "$person: $from{$person}\n";
}
-=-=---=-=---=-=---=-=---=-=---=-=--