linux:sed
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| linux:sed [19/03/2012 15:06] – rmq a\ daniel | linux:sed [10/08/2012 15:26] (Version actuelle) – bugfix catsc daniel | ||
|---|---|---|---|
| Ligne 20: | Ligne 20: | ||
| * / | * / | ||
| * /pattern/,$ : applique la commande entre la première ligne qui vérifie pattern (incluse) et la fin du fichier. | * /pattern/,$ : applique la commande entre la première ligne qui vérifie pattern (incluse) et la fin du fichier. | ||
| + | |||
| Ligne 46: | Ligne 47: | ||
| * p : affiche la ligne | * p : affiche la ligne | ||
| * P : affiche le début du buffer jusqu' | * P : affiche le début du buffer jusqu' | ||
| + | * q : quitte le script (sans analyser les lignes suivantes) | ||
| * y/ | * y/ | ||
| Ligne 136: | Ligne 138: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | |||
| Ligne 154: | Ligne 158: | ||
| Et si on veut aussi virer les commentaires qui suivent "#" | Et si on veut aussi virer les commentaires qui suivent "#" | ||
| <code sed> | <code sed> | ||
| - | sed -e '# on charge tout dans le buffer | + | #!/bin/sed -f |
| - | { :boucle; N; $! b boucle;}; | + | |
| - | # on remplace les * isolés, vire les commentaires /* */ et on remets nos * isolés | + | # on charge tout dans le buffer |
| - | s/\([^/ | + | { :boucle; N; $! b boucle;}; |
| - | # | + | |
| - | s/#[^\n]*//g; s#//[^\n]*##g; | + | # on remplace les * isolés, vire les commentaires /* */ et on remets nos * isolés |
| - | # les espaces et tabulations seules sur leur ligne | + | s@\([^/ |
| - | s/\n[ \t]*\n//g; | + | s@/ |
| - | # et les lignes vides (\n multiples | + | s@µ£µ£µ£@\*@g; |
| - | s/[\n]\+/\n/g;' < fichier | + | |
| + | # On vire ce qui suit # sur une ligne | ||
| + | s@#[^\n]*@@g; | ||
| + | # les lignes qui commencent par ; (esp avant éventuels) | ||
| + | s@\n[ \t]*; | ||
| + | # et par // | ||
| + | s@\n[ \t]*//[^\n]*@\n@g; | ||
| + | # les espaces et tabulations seules sur leur ligne | ||
| + | s@\n[ \t]*\n@\n@g; | ||
| + | # et \n multiples | ||
| + | s@[\n]\+@\n@g; | ||
| </ | </ | ||
| - | et dans un fichier d' | + | |
| + | et dans un fichier d' | ||
| <code bash> | <code bash> | ||
| - | alias catsc=' | + | alias catsc=' |
| + | s@\([^/ | ||
| + | s@/ | ||
| + | s@µ£µ£µ£@\*@g; | ||
| + | s@#[^\\n]*@@g; | ||
| + | s@\\n[ \\t]*; | ||
| + | s@\\n[ \\t]*//[^\\n]*@\\n@g; | ||
| + | s@\\n[ \\t]*\\n@\\n@g; | ||
| + | s@[\\n]\+@\\n@g;"' | ||
| </ | </ | ||
linux/sed.1332165996.txt.gz · Dernière modification : 19/03/2012 15:06 de daniel