La commande sed

cynda123 Messages postés 1 Statut Membre -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
je veux supprimer une ligne de fichier .txt avec le shell j’utilise cette commande mais ça marche pas ??? aidez moi :'(

echo "saisissez le nom que vous voulez supprimer"
read name
$GREP -i $name f.txt
#if [ $? == 0 ]
#then
#echo "$name, existe"

sed -i 's/^$name /d' ./f.txt

3 réponses

  1. Utilisateur anonyme
     
    Bonjour,
    s'il vous plaît,
    merci.

    « ça marche pas »
    pourquoi ? il lui manque un pied ? c'est une table ? c'est sur roulette ?
    ptdr
    0
  2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    sed -i '/^$name /d' ./f.txt
    ça fonctionnerai pas ?
    0
    1. Utilisateur anonyme
       
      non, parce que la variable ne peut pas être développée.
      0
    2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      sed -i "/^$name /d" ./f.txt
      alors ?
      0
      1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501 > Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Salut,

        Oui, mais non ;-)

        Je m'explique, enfin l'explication est plutôt.

        Exemple :
        $ cat fich    # Le contenu du fichier
        bonjour
        salut
        hello
        hola
        hi

        $ var="h" # Initialisation variable

        $ sed "/${var}/d" fich # On supprime les lignes contenants un "h"
        bonjour
        salut

        $ sed "/${var}/!d" fich # On ne veut que celles ayants un "h"
        sed "/${var}/df -hT " fich
        sed: -e expression n°1, caractère 5: caractères inutiles après la commande

        $ sed '/'"${var}"'/!d' fich # La bonne syntaxe
        hello
        hola
        hi
        0
    3. Utilisateur anonyme
       
      ou alors, on ajoute un espace :
      sed "/$var/! d" fich
      0
      1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501 > Utilisateur anonyme
         
        Bien vu, merci ;-)
        0