Comment virer une chaine dans un fichier ? [SHELL UNIX] - Programmation
Marsh Posté le 03-04-2001 à 11:10:39
attention, grep -v te supprime des lignes entières
regarde tr.
Marsh Posté le 03-04-2001 à 11:35:27
justement c une ligne entiere que je veux supprimer (mais merci kan meme, je connaissais tr ;-) )
Cela dit je veux garder le meme fichier et pas avoir ca sur la sortie standard
Marsh Posté le 03-04-2001 à 11:41:44
Pour ca, il n'y a rien de mieux que sed.
Bon, la syntaxe demande un chouia de pratique, mais c'est un outil efficace et eprouve.
A+,
Marsh Posté le 03-04-2001 à 11:42:38
OK merci a tous les deux pour votre aide ;-)
Marsh Posté le 03-04-2001 à 11:55:23
J'ai du mal à comprendre sed...
est ce que par exemple je peux partir d'un fichier toto.txt contenant :
titi
toto
tutu
et et garder le meme fichier toto.txt ayant
titi
tutu
cad virer toto ...
Marsh Posté le 03-04-2001 à 12:44:26
scuse, pour sed, la sortie est sur stdout
(un script a la /^toto$/ {d} supprime la ligne toto).
Pour editer en place un fichier, c'est ed, dont les commandes sont nettement moins sympatiques.
Si tu crees un fichier cmd.ed qui contient:
g/^toto$/d
w
q
et que tu apelles ed ainsi:
cat cmd.ed | ed fichier_a_modifier
la ligne contenant toto sera viree en place.
(tu auras 2 lignes visibles: la premiere contient le nb de caracteres initiaux et la seconde le nb de caracteres finaux; tu peux les faire disparaitre avec un >/dev/null en fin de commande)
A+,
Marsh Posté le 03-04-2001 à 12:50:50
wouawou ! Merci bien ! Je vais regarder dans cette voix !
Marsh Posté le 03-04-2001 à 10:59:57
Bon passons à un autre sujet...
Comment je peux faire en shell pour virer une chaine dans un fichier ? il y a bien la commande grep -v mais ecrire un fichier sur lui meme c'est pas le top et d'ailleurs ca marche pas...
quelqu'un a une idée ?
Bien à vous.
---------------
"There's not such a thing as a stupid question, only stupid people..."