Outils pour utilisateurs

Outils du site


linux:sed

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
linux:sed [08/03/2010 12:21] daniellinux:sed [08/03/2010 12:34] – aj alias pour virer les commentaires daniel
Ligne 133: Ligne 133:
 } }
 </code> </code>
 +
 +
  
 ==== Virer les commentaires ==== ==== Virer les commentaires ====
Ligne 146: Ligne 148:
 </code> </code>
  
-Et si on veut aussi virer les commentaires qui suivent # ou //, et les lignes vides, alors, on ajoute :+Et si on veut aussi virer les commentaires qui suivent "#" et "<nowiki>//</nowiki>", et les lignes vides, alors, on ajoute :
 <code sed> <code sed>
-sed -e '{ :boucle; N; $! b boucle;};+sed -e '# on charge tout dans le buffer 
 + { :boucle; N; $! b boucle;}; 
 + # on remplace les * isolés, vire les commentaires /* */ et on remets nos * isolés
  s/\([^/]\)\*\([^/]\)/\1µ£µ£µ£\2/g; s#/\*[^\*]*\*/##g; s/µ£µ£µ£/\*/g;  s/\([^/]\)\*\([^/]\)/\1µ£µ£µ£\2/g; s#/\*[^\*]*\*/##g; s/µ£µ£µ£/\*/g;
- s/#[^\n]*//g; + # on vire les commentaires # et // 
- s#//[^\n]*##g;+ s/#[^\n]*//g; s#//[^\n]*##g; 
 + # les espaces et tabulations seules sur leur ligne
  s/\n[ \t]*\n//g;  s/\n[ \t]*\n//g;
 + # et les lignes vides (\n multiples consécutifs remplacés par un seul)
  s/[\n]\+/\n/g;' < fichier  s/[\n]\+/\n/g;' < fichier
 </code> </code>
 +et dans un fichier d'alias ça donne (qq échappements sup) 
 +<code bash> 
 +alias catsc='sed -e "{ :boucle; N; \$! b boucle;}; s/\([^/]\)\*\([^/]\)/\1µ£µ£µ£\2/g; s#/\*[^\*]*\*/##g; s/µ£µ£µ£/\*/g; s/#[^\\n]*//g; s#//[^\\n]*##g; s/\n[ \t]*\\n//g; s/[\\n]\+/\\n/g;"
 +</code>
linux/sed.txt · Dernière modification : 10/08/2012 15:26 de daniel