Bonjour à tous,
Je poste ce message, car ça fait maintenant plusieurs mois que j'ai découvert les outils sed, awk.
Leur puissance est très impressionnante, et j'aimerais approfondir leur utilisation de manière à pouvoir réellement gagner du temps lors de la réalisation de travaux fastidueux et répétitif.
Pour cela, j'aimerais savoir, si il existait un livre regroupant des exemples et toute l'explication sur l'utilisation avancée de ces outils. Parce que j'ai trouvé ne me satisfaisait pas réellement.
Sinon, y - a - t - il d'autres outils de scripts dans le même style que vous pourrie me conseiller ?
# ORA
Posté par Lol Zimmerli (site web personnel, Mastodon) . Évalué à 4.
http://www.oreilly.com/catalog/sedawkrepr2/index.html
http://www.oreilly.com/catalog/sed2/index.html
Sinon, man tr, man regexp, man grep
La gelée de coings est une chose à ne pas avaler de travers.
[^] # Re: ORA
Posté par syntaxerror . Évalué à 3.
http://www.oreilly.com/catalog/upt3/
P.S. préférer info à man pour les outils GNU
[^] # Re: ORA
Posté par Gniarf . Évalué à 2.
[^] # Re: ORA
Posté par jeje99 . Évalué à 1.
sed & awk, Second Edition
Unix Power Tools, Third Edition à l'air plus orienté sur l'administration. Je me l'offrirais peut être plus tard.
# meuh
Posté par gc (site web personnel) . É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";
}
-=-=---=-=---=-=---=-=---=-=---=-=--
[^] # Re: meuh
Posté par syntaxerror . Évalué à 1.
Mais pour le reste, le shell et les outils GNU me paraissent plus simples et lisibles
compter toutes les lignes contenant "foo" dans le fichier "bar" :
grep -c "foo" bar
count number of messages from each sender
grep '^From: ' $filename | sort | uniq -c
(je sais, perl sera plus rapide dans certains cas)
(zut, je n'ai pas pu résister)
[^] # Re: meuh
Posté par Bruno Muller . Évalué à 3.
Bin, non : sed -i 's/Version: 4.3/Version:4.4/' *.c
[^] # Re: meuh
Posté par jeje99 . Évalué à 1.
Quel langage de script est le plus adapté faire l'analyse de chaîne de caractère awk ou perl ?
Répondez moi en toute objectivité svp (évitons le lancé de troll) :
- simplicité.
- efficacité
- facilité d'aprentissage
- ....
[^] # Re: meuh
Posté par syntaxerror . Évalué à -1.
[^] # Re: meuh
Posté par syntaxerror . Évalué à 1.
# programmation script
Posté par nanard . Évalué à 1.
http://www.editions-eyrolles.com/Livre/9782212114058/scripts-sous-linux
Allez tous vous faire spéculer.
[^] # Re: programmation script
Posté par jeje99 . Évalué à 1.
Merci du tuyau...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.