Script shell

Résolu
lamiae123 Messages postés 19 Statut Membre -  
mariam1990 Messages postés 31 Statut Membre -
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

3 réponses

  1. lamiae123 Messages postés 19 Statut Membre
     
    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
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    $cat toto
    #hjnd
    #!jdfj
    if(#!ds) ddcf #hbdf
    fdf
    jhdv
    
    $sed -i '/^#/d' toto
    
    $cat toto
    if(#!ds) ddcf #hbdf
    fdf
    jhdv
    
    $

    ;-))
    0
    1. lamiae123 Messages postés 19 Statut Membre
       
      en faite , je l 'ai testé et ça marche pas

      l'erreur suivante s'affiche:
      sed: illegal option -- i
      0
    2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Quelle système d'exploitation ?
      Quelle version de "sed" ?

      Sinon :

      sed '/^#/d' toto > tmp && mv -f tmp toto
      0
    3. lamiae123 Messages postés 19 Statut Membre
       
      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
    4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      sed '/^#/d;s/ #.*//' toto
      0
    5. lamiae123 Messages postés 19 Statut Membre
       
      merci bcp ,
      vous etes le meilleur
      0
  3. KuKrApOk59 Messages postés 444 Date d'inscription   Statut Membre Dernière intervention   84
     
    @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
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      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
    2. mariam1990 Messages postés 31 Statut Membre 1
       
      merci
      0