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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  sed + ajout chaine de caractere avant le retour chariot

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

sed + ajout chaine de caractere avant le retour chariot

n°968070
dreamkille​r
Posté le 23-10-2007 à 10:57:29  profilanswer
 

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

mood
Publicité
Posté le 23-10-2007 à 10:57:29  profilanswer
 

n°968072
wedgeant
Da penguin inside
Posté le 23-10-2007 à 11:01:38  profilanswer
 

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


 
Non ? :gratgrat:


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°968073
o'gure
Modérateur
Multi grognon de B_L
Posté le 23-10-2007 à 11:03:49  profilanswer
 

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 !
n°968074
wedgeant
Da penguin inside
Posté le 23-10-2007 à 11:05:21  profilanswer
 

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
n°968075
o'gure
Modérateur
Multi grognon de B_L
Posté le 23-10-2007 à 11:07:47  profilanswer
 

"ohtusais" [:cerveau o]


---------------
Relax. Take a deep breath !
n°968076
dreamkille​r
Posté le 23-10-2007 à 11:11:01  profilanswer
 

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
n°968077
wedgeant
Da penguin inside
Posté le 23-10-2007 à 11:12:26  profilanswer
 

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
n°968080
dreamkille​r
Posté le 23-10-2007 à 11:14:40  profilanswer
 

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
n°968135
matafan
Posté le 23-10-2007 à 12:38:01  profilanswer
 
n°968137
wedgeant
Da penguin inside
Posté le 23-10-2007 à 12:44:13  profilanswer
 

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
mood
Publicité
Posté le 23-10-2007 à 12:44:13  profilanswer
 

n°968170
dreamkille​r
Posté le 23-10-2007 à 13:50:25  profilanswer
 


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

n°968228
dreamkille​r
Posté le 23-10-2007 à 15:28:18  profilanswer
 

resolu par contre la commande est assez tendu:

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

n°968472
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 23-10-2007 à 19:43:08  profilanswer
 

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.

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

  sed + ajout chaine de caractere avant le retour chariot

 

Sujets relatifs
iptables : se présenter avec une autre adresse et retourtraitement d'un fichier de retour d'email d'erreur avec SED
[Redhat] Ajout d'un driver lors de l'installation?Probleme d'encodage de caractere
Recherche de chaîne de caractère avec grepCompter le nombre de caractère ";"
BASH remplacer une chaine par une autre en suivant un motif.Comment faire le caractère étoile au clavier.
Plus de sujets relatifs à : sed + ajout chaine de caractere avant le retour chariot


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