Script shell

Résolu/Fermé
lamiae123 Messages postés 18 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 30 juin 2010 - 29 mars 2010 à 14:00
mariam1990 Messages postés 30 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 26 septembre 2010 - 29 mars 2010 à 18:46
bonjour ,
je veux faire une mise en forme pour des scripts que j'ai :

eliminer les espace:
supprimer les commentaire:
remplacer des variable par d'autre
exemple:
a partir du script suivant (c pa un script:) c du n importe quoi)

#hjnd
#!jdfj
if(#!ds) ddcf #hbdf
fdf
jhdv

obtenir le resultat suivant
if(#!ds) ddcf
fdf
jhdv

Remarque:
les commentaires commencent par # or je veux pa supprimer tt ce qui apres # parce que il y a des commande qui commance par # ( c bien exprimé dans l exemple cité ci dessus :D)

j attend votre reponse avec impatience
merci d avance
vraiment je suis bloqué
:d:d
A voir également:

3 réponses

lamiae123 Messages postés 18 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 30 juin 2010
29 mars 2010 à 14:05
en faite j'ai utilisé la commande
sed '/^ *#/d;s/#.*//' lundi.txt > lundi1.txt
c utile , mais elle supprime tt ce qui est apres le #
c adire
a partir de ce script
#hjnd
#!jdfj
if(#!ds) ddcf #hbdf
fdf
jhdv

j 'ai obtenu
if(
fdf
jhdv
alors que c 'est pa ça ce que je veux

je veux avoir com sortie le script suivant:

if(#!ds) ddcf
fdf
jhdv


dsl je repete trop , mé pr bien exprimer mon besoin
:)
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
29 mars 2010 à 14:07
Salut,

$cat toto
#hjnd
#!jdfj
if(#!ds) ddcf #hbdf
fdf
jhdv

$sed -i '/^#/d' toto

$cat toto
if(#!ds) ddcf #hbdf
fdf
jhdv

$

;-))
0
lamiae123 Messages postés 18 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 30 juin 2010
29 mars 2010 à 14:18
en faite , je l 'ai testé et ça marche pas

l'erreur suivante s'affiche:
sed: illegal option -- i
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
29 mars 2010 à 14:20
Quelle système d'exploitation ?
Quelle version de "sed" ?

Sinon :

sed '/^#/d' toto > tmp && mv -f tmp toto
0
lamiae123 Messages postés 18 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 30 juin 2010
29 mars 2010 à 14:24
et aussi je ve pas que le script resultat contiendra le commentaire #hbdf
juste

if(#!ds) ddcf
fdf
jhdv

merci bcp pr ça
et j attend vootre reponse :D
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
29 mars 2010 à 14:34
sed '/^#/d;s/ #.*//' toto
0
lamiae123 Messages postés 18 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 30 juin 2010
29 mars 2010 à 16:48
merci bcp ,
vous etes le meilleur
0
KuKrApOk59 Messages postés 437 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 13 septembre 2013 84
29 mars 2010 à 17:52
@mariam1990

la commande
sed '/^#/d;s/ #.*//' toto


permet à la fois de
- supprimer les lignes commençant par un # : /^#/d
- supprime les commentaires en fin de ligne qui suivent un # : s/ #.*//

Si j'ai tout suivi
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
29 mars 2010 à 17:57
Salut,

supprime les commentaires en fin de ligne qui suivent un # : s/ #.*//
Supprime un commentaire et ce qui suit uniquement si le commentaire est précédé d'un espace.
Ce qui évite de supprimer "#!ds) ddcf" dans la ligne "if(#!ds) ddcf ".

;-))
0
mariam1990 Messages postés 30 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 26 septembre 2010 1
29 mars 2010 à 18:46
merci
0