Bonjour

je veux ecrire une commande sed qui retire les commentaires et les lignes blanches comme ca:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
% cat data
#! /usr/bin/tail -n1

La ligne precedente est blanche.
Cette ligne n'est pas un commentaire
mais celle-ci # en contient un!
% sed ... < data
La ligne precedente est blanche.
Cette ligne n'est pas un commentaire
mais celle-ci
Voici ce qui s'affiche quand j'execute ma commande sed.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
sed '/^#\|^$/d{/#/{h;s/\(.*\)#.*/\1/;x;G;p}};' < data
sed: -e expression n°1, caractère 10: caractères inutiles après la commande
quand je veux retirer le saut de ligne et la ligne de commentaire j'obtient:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
sed '/^#\|^$/d' < data
La ligne precedente est blanche.
Cette ligne n'est pas un commentaire
mais celle-ci # en contient un!
C'est pour retirer le commentaire après le # que ma commande ne fonctionne pas et renvoie "caracteres inutiles après la commande".
Moi je vois rien d'inutile.

Quelques conseils sont bienvenues
Merci d'avance