Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1434 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  supprimer une ligne dans un fichier texte en bash [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

supprimer une ligne dans un fichier texte en bash [résolu]

n°396558
davyd
alea jacta est ...
Posté le 26-01-2004 à 16:32:47  profilanswer
 

salut !!
 
je cherche une commande qui me permettrait de chercher une valeur dans un fichier texte puis de la remplacer .
 
exemple avec le fichier suivant (essai.txt)
 

bonjour je m'appelle machin,
 
sdfdf
fddf

 
je voudrais lancer une commande et avoir le fichier essai.txt :
 

bonjour je m'appelle truc
 
sdfdf
fddf

 
c surement tres facile mais j'avoue quentre les grep ...
j'y suis pas arrivé
j'ai essayé avec "sed" mais j'arrive pas a ce qu'il conserve le resultat dans le fichier, meme avec "> fichier" ...
 
Merci d'avance
 
 [:alex_]


Message édité par davyd le 03-02-2004 à 11:37:50

---------------
"c'est quand on est au pied du mur...qu'on voit le mieux le mur"
mood
Publicité
Posté le 26-01-2004 à 16:32:47  profilanswer
 

n°396564
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 26-01-2004 à 16:38:59  profilanswer
 

cat essai.txt | sed s/machin/truc/ > fichier2.txt ne fonctionne pas ?

n°396565
davyd
alea jacta est ...
Posté le 26-01-2004 à 16:41:45  profilanswer
 

ouai en fait ca marche mais il faut que je crée un nvo fichier .
 
si je fais  
"sed 's/truc/machin/' fichier.txt > fichier.txt " ca merde
mais  
"sed 's/truc/machin/' fichier.txt > fichier2.txt " ca marche
 
Bon merci en tt cas du conseil !!!
 
bonne soiree  


---------------
"c'est quand on est au pied du mur...qu'on voit le mieux le mur"
n°396578
arghbis
salops de dauphins
Posté le 26-01-2004 à 17:06:07  profilanswer
 

ben tu fais "sed 's/truc/machin/' fichier.txt > fichier2.txt && mv fichier2.txt fichier.txt"

n°396583
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 26-01-2004 à 17:24:46  profilanswer
 

arghbis a écrit :

ben tu fais "sed 's/truc/machin/' fichier.txt > fichier2.txt && mv fichier2.txt fichier.txt"


 
[:plusun]

n°400488
aigles
Posté le 02-02-2004 à 14:43:55  profilanswer
 

Avec perl, pas besoin de fichier intermédiaire :
 
perl -pi -e 's/truc/machin/g' fichier.txt


---------------
Jean Pierre.
n°400912
davyd
alea jacta est ...
Posté le 03-02-2004 à 10:57:44  profilanswer
 

ca marche nickel le perl
 
mais si jamais je veux effacer une ligne qui contient ce mot mais uniquement ce mot je fais comment ??  :??:  
 
par exemple j'ai un fichier essai.txt qui contient :

bart_homer
bart
marge
bartoli

 
je veux effecer uniquement la ligne qui contient bart et pas celles qui ont aussi la chaine "bart" contenu dans leur nom
 
donc je voudrais avoir le fichier essai.txt :
 

bart_homer
marge
bartoli

 
Merci de votre aide   :jap:


---------------
"c'est quand on est au pied du mur...qu'on voit le mieux le mur"
n°400913
arghbis
salops de dauphins
Posté le 03-02-2004 à 10:58:52  profilanswer
 

s/^bart$//;
 
de rien

n°400918
davyd
alea jacta est ...
Posté le 03-02-2004 à 11:02:27  profilanswer
 

merci !!
 
et si jamais j'ai une chaine de caractere genre  
 
@bart.com bart
 
pr supprimer la ligne entiere aussi ??


---------------
"c'est quand on est au pied du mur...qu'on voit le mieux le mur"
n°400919
arghbis
salops de dauphins
Posté le 03-02-2004 à 11:04:45  profilanswer
 

ben quand tu parcours ton fichier, tu fais un : next if (/\s+bart\s+/);
 
--edit--
 
c pas top de supprimer les lignes, vaut mieux faire des conditions d'action


Message édité par arghbis le 03-02-2004 à 11:05:14
mood
Publicité
Posté le 03-02-2004 à 11:04:45  profilanswer
 

n°400921
davyd
alea jacta est ...
Posté le 03-02-2004 à 11:09:15  profilanswer
 

et y a pas moyen de lui dire enleve la ligne ou y a cette expressio n en le mettant entre guillemets ou une connerie comme ca ??
 
parce  que j'avoue que j'ai un peu de mala a comprendre la syntaxe de ta derniere reponse ... :heink:  
 


---------------
"c'est quand on est au pied du mur...qu'on voit le mieux le mur"
n°400928
davyd
alea jacta est ...
Posté le 03-02-2004 à 11:22:05  profilanswer
 

ca m'a enlevé que 'bart' la commande que tu m'as mis mais ca m'a laissé le debut de la ligne:
 
avant :
@bart.com bart
 
maintenant:
@bart.com
 


---------------
"c'est quand on est au pied du mur...qu'on voit le mieux le mur"
n°400937
arghbis
salops de dauphins
Posté le 03-02-2004 à 11:36:05  profilanswer
 

ben c normal, la prmmière substitue la chaine bart, et uniquement celle-ci, par rien.
 
pour ce que tu veux faire, j'imagine que tu parcours ton fichier avec un truc dans le genre :

Code :
  1. while (<R> ) {
  2.   chomp;
  3.   next if (/\s+bart\s+/);
  4. faire truc bidule;
  5. }


 
ça, ça marche


Message édité par arghbis le 03-02-2004 à 11:37:01
n°400938
davyd
alea jacta est ...
Posté le 03-02-2004 à 11:36:34  profilanswer
 

j'ai trouvé !!  :bounce:  
 
en fait comme un con j'avais meme pas tilté que "@" ct un caractere special et que fallait que je mette un \ devant ... :pt1cable:  
 
 
donc voila maintenant ca marche  
je tape la commande :
perl -pi -e 's/^\@bart.com\sbart$+//g' monfichier.txt
 
Merci de ton aide en tt cas arghbis !!  :jap:  
 
 


---------------
"c'est quand on est au pied du mur...qu'on voit le mieux le mur"
n°400939
arghbis
salops de dauphins
Posté le 03-02-2004 à 11:37:42  profilanswer
 

ah ok, tu le fais uniquement en ligne de commande, pas de script perl...

n°401099
davyd
alea jacta est ...
Posté le 03-02-2004 à 14:09:13  profilanswer
 

ouai je suis un barbare ... :lol:


---------------
"c'est quand on est au pied du mur...qu'on voit le mieux le mur"

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  supprimer une ligne dans un fichier texte en bash [résolu]

 

Sujets relatifs
Changer la frequence de l'ecran en ligne de commande [Mdk9.2]impossible de modifier modules.conf sur Mandrake 9.2 [résolu]
faire des up "cronné" en ftp [resolu] et avec scp [résolu aussi]?[Résolu] Comment faire des captures vidéos de mon écran ?
[Debian] Noyau 2.6.1 -> Plus de cdrom !!! [Résolu]Indicateur de volume [resolu]
pb de lecture video avec mplayer et pas avec xine [RESOLU]comment récupérer un fichier rm depuis rtsp://
[Résolu][graveur][vitesse]regl age ?Un petit peu d'aide avec un petit script bash
Plus de sujets relatifs à : supprimer une ligne dans un fichier texte en bash [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR