Pour la petite explication, c'est du booléen, par défaut awk affiche son $0 si la condition d'entrée est vraie, pour la partie /Cle/ awk evalue et afficherait par défaut le $0 mais ici non, puisqu'il a un bloc à executer: {x=1}.
Puis, il continue pour l'autre condition d'entrée qui est x, et comme au départ x n'est pas initialisé (on aurait pu l'initialiser à 0) awk la voit donc comme fausse et donc ne fait rien. ensuite quand /Cle/ devient vrai , on initialise x à autre chose que 0 afin que quand awk le vérifie en tant que condition, celui-ci est vrai et donc affiche $0.
PS: ça serait interressant de le faire aussi via grep :aie: