The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
remplacement d'un champ dans un fichier CSV prvnrk De programmation et de script Shell 2 11-12-2008 08:51 AM
remplacer le seul domaine de 60 ajp7701 De programmation et de script Shell 2 04-21-2008 08:17 PM
Remplacer le terrain dans csv pcboss Linux 4 01-19-2008 06:24 PM
Remplacer le mot de passe dans les champs de ed / sed croquer UNIX pour les nuls Questions et réponses 6 05-01-2007 12:01 AM
Remplacer le 10e terrain de 2 PradeepRed De programmation et de script Shell 2 01-19-2006 03:46 AM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 06-03-2009
VGR VGR is offline
Registered User
  
 

Join Date: Mar 2008
Lieu: Kolkata
Posts: 34
awk pour remplacer domaine particulier

J'ai mal de données, par exemple, l'utilisation de lettres majuscules au milieu du mot.
J'ai identifié les erreurs, a fait une liste et la mettre dans un fichier error_correction.txt
Incorrect, correct
Venom, Venom
nsa, NSA
.
.
.



Mon fichier de données se présente comme suit:
VGR, Bugatti Veron,, 3.5, Venom, 6 ,.......,....
VGR, lamborgini,, 3.5, nsa, 6 ,.......,....
abc, Bugatti Veron,, 3.5, Venom, 6 ,.......,.......
.
.
.
.

J'ai besoin de remplacer les termes dans un domaine de la 5 e à celle du fichier.
Comment puis-je faire cela en utilisant awk?
  #2 (permalink)  
Old 06-03-2009
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Join Date: Dec 2007
Lieu: Accueil de 17-champion du monde Boston Celtics
Messages: 1311
Wink Un exemple pour vous aider à démarrer ...

Code:
> echo "867 5309 VerNOM 1234 Abcd"
867 5309 VerNOM 1234 Abcd

> echo "867 5309 VerNOM 1234 Abcd" | awk -v v1="VerNOM" -v v2="Vernom" '{gsub(v1,v2,$3);print}'
867 5309 Vernom 1234 Abcd
  #3 (permalink)  
Old 06-04-2009
VGR VGR is offline
Registered User
  
 

Join Date: Mar 2008
Lieu: Kolkata
Posts: 34
Merci Joeyg ...
Je n'étais pas sûr de savoir comment tranquille de remonter les valeurs d'un autre fichier à l'intérieur de la awk!
comment puis-je utiliser un âne. array [hash] dans awk?
  #4 (permalink)  
Old 06-04-2009
Franklin52 Franklin52 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4308
Essayez ceci:

Code:
awk -F, '
NR==FNR{a[$1]=$2;next}
a[$5]{$5=a[$5]}
1' error_correction.txt datafile
Observe
  #5 (permalink)  
Old 06-04-2009
VGR VGR is offline
Registered User
  
 

Join Date: Mar 2008
Lieu: Kolkata
Posts: 34
im not sure why tranquille ce qui se passe ...
la valeur change à l'intérieur de la boucle, mais ne sont pas enregistrées dans le fichier!
  #6 (permalink)  
Old 06-04-2009
Franklin52 Franklin52 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4308
Le fichier ne peut être publié "en place" avec awk. Redirige la sortie vers un fichier temporaire et remplacer le fichier original avec celui-ci.

Code:
awk '<commands>' error_correction.txt datafile > tempfile
mv tempfile datafile
  #7 (permalink)  
Old 06-04-2009
VGR VGR is offline
Registered User
  
 

Join Date: Mar 2008
Lieu: Kolkata
Posts: 34
cool ...
awesome stuff
thanks a ton homme ....
Reply

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 02:17 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0