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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Bash] Restreindre sed ou awk à une colonne d'un fichier csv

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Bash] Restreindre sed ou awk à une colonne d'un fichier csv

n°1391476
Morpheus86
Posté le 21-06-2016 à 16:54:56  profilanswer
 

:hello:  
 
J'ai le fichier .csv suivant:

Code :
  1. 05/17/2016 15:37:47,102,11801
  2. 05/21/2016 13:45:53,79,116554
  3. 05/21/2016 22:03:26,3,9926911


 
Le second champ est un code numérique, j'aimerais remplacer sa valeur (via sed ou awk) par quelque chose de plus lisible ex:

Code :
  1. 05/17/2016 15:37:47,GOOGLE,11801
  2. 05/21/2016 13:45:53,MICROSOFT,116554


 
Pour celà, je cherche à resteindre l'exécution de SED ou d'AWK à cette seule colonne. J'avais pensé faire çà avec cut mais çà ne marche pas comme prévu.
 
Je suis tombé sur ce topic où quelqu'un cherchait à faire la même chose.
Malheureusement, je n'ai pas réussi à adapté le code proposé par un contributeur à mon cas:
 

Code :
  1. awk -F@ '$3 ~ /pattern/ { OFS= "@"; $3 = "replace"; }'


 
J'ai remplacé les "@" par des virgules vu que ce sont mon séparateur de champs à moi, et les "$3" par des "$2" vu que c'est la colonne qui m'intéresse à moi... sans succés jusque là.
 
Si vous pouviez y jeter un coup d'oeil, merci d'avance !


---------------
Mon feedback
mood
Publicité
Posté le 21-06-2016 à 16:54:56  profilanswer
 

n°1391481
Fork Bomb
Obsédé textuel
Posté le 21-06-2016 à 18:30:19  profilanswer
 

Une approche différente :

Code :
  1. cat test.txt
  2. 05/17/2016 15:37:47,102,11801
  3. 05/21/2016 13:45:53,79,116554
  4. 05/21/2016 22:03:26,3,9926911


Code :
  1. while read ligne; do echo "${ligne}"|awk -F',' '{print $2}'; done < test.txt
  2. 102
  3. 79
  4. 3


Ça te permet d’isoler les nombres que tu veux. Ensuite, tu peux faire ton remplacement.


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1391482
Morpheus86
Posté le 21-06-2016 à 19:29:04  profilanswer
 

Merci pour ta réponse, mais celà ne revient-il pas au même qu'un cat test.txt | cut -d"," -f2 dans le sens où je peux visualiser les données de ce champ mais pas les éditer ?


---------------
Mon feedback
n°1391483
Fork Bomb
Obsédé textuel
Posté le 21-06-2016 à 19:32:38  profilanswer
 

Morpheus86 a écrit :

Merci pour ta réponse, mais celà ne revient-il pas au même qu'un cat test.txt | cut -d"," -f2 dans le sens où je peux visualiser les données de ce champ mais pas les éditer ?


Il me semble que oui.
Mais tu peux tester aussi :o


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1391518
Profil sup​primé
Posté le 22-06-2016 à 19:54:20  answer
 

tiens je l'avais pas vu celui-là.
 
c'est le 5ème forum sur lequel tu postes ce sujet.  :pt1cable:

n°1395700
rapha3L
Posté le 04-10-2016 à 18:06:30  profilanswer
 

Avec 4 mois de retard :o

 

La commande gawk permet d'enregistrer les modifications dans le fichier d'entrée avec l'option -i inplace (à la manière d'un sed -i) :

Code :
  1. gawk -i inplace  -F"," '{ OFS="," ; gsub("102","GOOGLE",$2); gsub("78","MICROSOFT",$2);print}' test.txt


Message édité par rapha3L le 04-10-2016 à 18:07:12

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

  [Bash] Restreindre sed ou awk à une colonne d'un fichier csv

 

Sujets relatifs
[Shell .sh] Copier des lignes dans un fichierGénérer un fichier channels.conf pour VLC (TNT)
CSH : modifier certains mots d'un fichier à partir d'un autre fichierVPN et fichier host + restriction pour certaines IPs
Ajouter la date à la création d'un fichierscript batch de compression automatique fichier
Ce thème d'icônes n'a aucun fichier cache...[RESOLU] Crontab : Appeler variable déclarée dans un autre fichier
Taille Système de fichier BTRFSErreur importation fichier .ocs
Plus de sujets relatifs à : [Bash] Restreindre sed ou awk à une colonne d'un fichier csv


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