Supprimer une ligne d'un fichier - Shell/Batch - Programmation
Marsh Posté le 21-12-2004 à 15:23:25
on peut supprimer avec grep ou sed ?? Pour trouver la ligne et tout, je vois mais pour delete la ligne!!
Merci en tous cas!
Marsh Posté le 22-12-2004 à 09:23:37
ok merci je vais lire tout ca, mais je ne vois vraiment pas la!
Marsh Posté le 27-12-2004 à 09:17:12
alors je comprends pas!
Je pige l'histoire pour trouver la bonne ligne, y'a pas de problème, mais comment ma supprimer du fichier, la c'est une autre histoire!
Marsh Posté le 27-12-2004 à 13:58:43
en gros, un truc du style
'd/^a//'
supprmira toute les lignes qui commence par 'a'
Marsh Posté le 27-12-2004 à 14:23:14
JagStang a écrit : en gros, un truc du style |
Tu ne voulais pas dire plutôt '/^a/d' ?
Je crois que ce que bob007 ne comprend pas c'est comment récupérer le résultat de la commande (résultat dirigé sur stdout par défaut). Il suffit de rediriger stdout vers un fichier, avec '>' comme le post de matafan le suggérait.
Donc pour supprimer toutes les lignes qui commencent par a, c'est : sed -e '/^a/d' input_file > output_file.
Cependant si l'entrée et la sortie sont le même fichier, ça ne va pas marcher. Dans ce cas tu peux utiliser l'option -i de sed : sed -ie '/^a/d' nom_fichier.
Marsh Posté le 27-12-2004 à 19:25:20
Le sed de gnu a une option -i qui permet de modifer directement le fichier d'entree.
Sinon, mon grep -v ca ne vous plait pas ? C'est surement plus rapide que sed.
Marsh Posté le 27-12-2004 à 20:54:07
matafan a écrit : |
Si, moi j'aime bien grep
Mais là c'était peut être un peu léger pour ce qu'il voulait faire. Plus simple à utiliser mais un peu plus limité. Et il n'y a pas d'équivalent au -i de sed
Je me suis demandé ce que ça donnait du coté des performances, donc un petit test à l'arrache avec un fichier texte généré aléatoirement:
|
Je vous laisse tirer vos propres conclusions
Marsh Posté le 27-12-2004 à 21:43:31
ReplyMarsh Posté le 04-10-2005 à 15:13:53
matafan a écrit : Perl roulaize, tout le monde le savait |
sinon j'ai essayé la solution avec Sed mais ça ne marche pas.
quelqu'un aurait une idée en shell de comment supprimer une ligne dans un fichier
merci
Marsh Posté le 04-10-2005 à 20:05:38
sed '/toto/d' file
Avec eventuellement le flag -i. Je crois que ca a deja ete dit il y a 10 mois.
Marsh Posté le 20-04-2012 à 10:07:08
bonjour svp j'ai un prob !! l'orsque j'esaiye de supprimer une chaine dans un fichier tous le contenue sera supprimé!! j’utilise sed !!!
Marsh Posté le 21-12-2004 à 10:31:41
Salut all!
Je voudrais savoir si quelqu'un peut m'expliquer comment sous bash on peut faire un ti script qui va bien pour supprimer une ligne d'un fichier.
La ligne a supprimer est celle qui match avec les paramètres, enfin je ne sais pas si je suis tres clair...
Merci de votre aide!