sed + ajout chaine de caractere avant le retour chariot

sed + ajout chaine de caractere avant le retour chariot - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 23-10-2007 à 10:57:29    

Bonjour, j'ai du mal avec sed j'arrive pas a trouvé le moyen de rajouter un bloc de texte juste avant les caractères de fin de ligne (cr lf).
Quelqu'un aurai une piste?
 
Merci d'avance

Reply

Marsh Posté le 23-10-2007 à 10:57:29   

Reply

Marsh Posté le 23-10-2007 à 11:01:38    

Code :
  1. echo "ligne" | sed 's/\n/toto\n/'


 
Non ? :gratgrat:


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 23-10-2007 à 11:03:49    

j'aurais même été jusqu'à

s/\r\n$/tototo\r\n$/

[:petrus dei] (vu qu'il veut cr lf)

Message cité 1 fois
Message édité par o'gure le 23-10-2007 à 11:04:25

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 23-10-2007 à 11:05:21    

o'gure a écrit :

j'aurais même été jusqu'à

s/\r\n$/tototo\r\n$/

[:petrus dei] (vu qu'il veut cr lf)


Ouais bon, ça veut dire qu'il utilise pas notre pingouin :o

 

Mais ton "$" est inutile ... :spamafote:
Tu ne peux rien avoir après un \n sur une ligne :D


Message édité par wedgeant le 23-10-2007 à 11:05:43

---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 23-10-2007 à 11:07:47    

"ohtusais" [:cerveau o]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 23-10-2007 à 11:11:01    

c'est bien vu mais en faite le problème vient du fait que je cherche a ajouter a une ligne précise dans un fichier
 
J'ai essayé sa mais sa marche pas

Code :
  1. cat utilisateur.csv | sed '3s|\r|toto\r|'>test.csv


 
Pour info je suis sur de l'HP-UX et c'est pour des utilisateur windows le fichier

Message cité 1 fois
Message édité par dreamkiller le 23-10-2007 à 11:11:51
Reply

Marsh Posté le 23-10-2007 à 11:12:26    

dreamkiller a écrit :

c'est bien vu mais en faite le problème vient du fait que je cherche a ajouter a une ligne précise dans un fichier


 
Tu veux ajouter une ligne ou bien en modifier une ???
C'est pas vraiment pareil [:mrbrelle]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 23-10-2007 à 11:14:40    

modifier autant pour moi [:bobflo]
 
je cherche a rajouter un champ sur certaine ligne (ici la 3) avant le \r

Message cité 1 fois
Message édité par dreamkiller le 23-10-2007 à 11:43:12
Reply

Marsh Posté le 23-10-2007 à 12:38:01    

Reply

Marsh Posté le 23-10-2007 à 12:44:13    

dreamkiller a écrit :

je cherche a rajouter un champ sur certaine ligne (ici la 3) avant le \r


Tu es sur que ton fichier est bien au format dos ? (\r\n) ??


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 23-10-2007 à 12:44:13   

Reply

Marsh Posté le 23-10-2007 à 13:50:25    


Sa marche en apparence mais quand je regarde la structure du fichier il a ete caller le toto entre le CR et le LF
 

wedgeant a écrit :


Tu es sur que ton fichier est bien au format dos ? (\r\n) ??


oui

Reply

Marsh Posté le 23-10-2007 à 15:28:18    

resolu par contre la commande est assez tendu:

Code :
  1. cat utilisateur.csv | sed "4s|.$|12:00;`echo \\\r`|">test.csv

Reply

Marsh Posté le 23-10-2007 à 19:43:08    

Le problème de la conversion UNIX/DOS dépend de la machine sur laquelle on effectue le traitement en fait :o
 
Sur un Unix (bash) :

sed 's/$//'               # ca convertit de DOS vers UNIX
sed "s/$/$(echo \\\r)/"   # ca convertit de UNIX vers DOS (old school)
sed 's/$/\r/'             # même chose avec un sed un peu récent


 
Sur un Dos :

sed 's/$//'   # ca convertit de UNIX vers DOS
              # et DOS vers UNIX aucune idée, à mon avis faut cygwin et le sed de GNU...



---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed