[quote=“ricardo”]Ça c’est de l’explication complète comme je les aime 
Moi, pôv débutant, si on ne me met pas les points sur les ‘i’, se ne pige pas. Et comme je n’aime pas faire bêtement les choses si je ne les comprends pas, il faut que ça “rentre” et c’est parfois long
[/quote]
C’est tout à ton honneur, ne t’inquiète pas. awk (comme un paquet de trucs liés au shell) est assez compliqué à expliquer, mais se forcer à le faire est une très bonne chose (et ça fait partie du partage).
Edit. : J’ai commencé une page sur le wiki à ce sujet isalo.org/wiki.debian-fr/Awk
Le « sur place », c’est surtout pour faire comme le -i de sed. Avec sed tu lui dis :
sed -i 's/yes/no/g' fichier
et « fichier » est modifié. Avec awk il faut faire :
awk '...' fichier > new_fichier
mv new_fichier fichier
Awk travail sur une copie du fichier en mémoire (copie partielle si tu travail sur un fichier de plusieurs Gio il ne va pas charger tout le fichier d’un coup), avec print on écris au fur et à mesure le fichier sur la sortie standard qu’on redirige ensuite où l’on souhaite. C’est moins pratique.
À noter que sed ne fait pas d’optimisations, si on lance sed ainsi :
find -exec sed -i 's/kjdsk/sjkdhkf/' '{}' \;
Tout les fichiers seront modifiés, même si leur contenu ne l’est pas (qu’il n’y a eu aucun remplacement effectif).
Ça se remarque bien avec make, dans ces cas il est bon d’utiliser grep avant par exemple :
grep -rl 'kjdsk' . | xargs sed -i 's/kjdsk/sjkdhkf/'
(on commence par lister les fichiers qui vont devoir être modifié et on les modifie)