La commande sed

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. Contributeur
    sed -i '/^$name /d' ./f.txt
    ça fonctionnerai pas ?
    0
    1. non, parce que la variable ne peut pas être développée.
      0
    2. Contributeur
      sed -i "/^$name /d" ./f.txt
      alors ?
      0
    3. Contributeur
      @Char SnipeurSalut,

      Oui, mais non ;-)

      Je m'explique, enfin l'explication est là 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
    4. ou alors, on ajoute un espace :
      sed "/$var/! d" fich
      0
  2. 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