#1 Le 08/03/2018, à 15:56
- payx
Supprimer des lignes dans un fichier
Bonjour,
Je sais que ce sujet a été traité des dizaines de fois mais je n'ai pas réussi à le faire...
Je voudrais juste, dans un fichier lambda, supprimer des lignes qui correspondent à un nom d'un fichier.
Par exemple j'ai un fichier abc.txt :
abc:2.5
abc:2;6
dans ce cas si je veux supprimer abc:2;5 j'utilise sed -i "/abc:2.5/d abc.txt, mais comment je fais si le nom d'une ligne c'est : abc/abcd/a:2.5
avec les "/", la commande sed -i ne marche pas ..
Hors ligne
#2 Le 08/03/2018, à 16:08
- cqfd93
Re : Supprimer des lignes dans un fichier
Bonjour,
abc\/abcd\/a:2.5
− cqfd93 −
Hors ligne
#3 Le 08/03/2018, à 16:12
- payx
Re : Supprimer des lignes dans un fichier
D'accord merci,
Et vous savez aussi comment intégrer cette méthode si mon mot est une variable ?
En gros avant j'utilisait sed -i "$i/d" abc.txt et $i étant ma variable qui changeait en fonction de l'avancement du script.
Comment je peux changer ça ? J'avais pensé à détecter le slash et pour tout slash je met un antislash avant mais je ne pourrais le faire en langage shell
Hors ligne
#4 Le 08/03/2018, à 16:24
- cqfd93
Re : Supprimer des lignes dans un fichier
Je ne saurais pas te dire, désolée.
− cqfd93 −
Hors ligne
#5 Le 08/03/2018, à 17:29
- pingouinux
Re : Supprimer des lignes dans un fichier
Bonjour,
Pour ne pas t'embêter avec les \, tu peux utiliser un autre séparateur que le / (n'importe quel caractère, en fait).
sed "\#abc/abcd/a:2.5#d" fichier
Ou en utilisant une variable
i="abc/abcd/a:2.5"
sed "\#$i#d" fichier
Si ça ne convient pas, montre un exemple de quelques lignes.
Hors ligne
#6 Le 09/03/2018, à 08:10
- payx
Re : Supprimer des lignes dans un fichier
Bonjour,
ça marche niquel ! Merci :-)
Hors ligne
#7 Le 10/03/2018, à 08:55
- pingouinux
Re : Supprimer des lignes dans un fichier
Si c'est bon, merci de modifier ton premier message pour ajouter [Résolu] dans le titre.
Hors ligne