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 > UNIX pour les nuls Questions et réponses
.
google unix.com



UNIX pour les nuls Questions et réponses Si vous ne savez pas où poster un UNIX ou Linux question, post it here. Tous les systèmes UNIX et Linux, débutants bienvenus!

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
stop unix trouver sur une structure de répertoire, après avoir constaté 1er accident jm0221 De programmation et de script Shell 3 06-06-2008 07:19 PM
aide à la recherche et de remplacement de modèle dans un fichier dusoo De programmation et de script Shell 0 05-23-2008 03:59 AM
remplacement de certains caractères de nouvelle ligne? Bashar De programmation et de script Shell 4 05-13-2007 04:34 PM
trouver et remplacer des lignes vides / espaces dans un fichier Gerry405 SUN Solaris 2 07-21-2005 04:49 AM
script shell pour rechercher et remplacer au sein de la DG-UNIX Gerry405 UNIX pour les nuls Questions et réponses 3 07-12-2005 08:12 AM

Closed Thread
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 01-31-2008
stresing stresing is offline
Registered User
  
 

Join Date: Jan 2008
Messages: 3
Trouver énième accident dans la ligne et de le remplacer

Salut,

J'ai plusieurs fichiers de données qui doivent être importés dans une base de données. Ces fichiers contiennent les enregistrements avec des caractères de séparation. Certains documents sont corrompus (2 séparateurs sont manquantes) et j'ai besoin de les corriger avant de les importer dans la base de données.
Exemple:

| champ1 | champ2 | field3 | field4 | field5 | field6 | field7 | field8 | field9 | field10 | field11 | field12 | | |
| champ1 | champ2 | field3 | field4 | field5 | field6 | field7 | field8 | field9 | field10 | field11 | field12 | field13 | sentent d14 | field15
| champ1 | champ2 | field3 | field4 | field5 | field6 | field7 | field8 | field9 | field10 | field11 | field12 | field13

Les documents 1 et 2 sont correctes. Ils se composent de 15 champs séparés par 15 | caractères.
Record 3 est corrompu car il manque 2 séparateur de caractères avant field13.
Il devrait ressembler à:
| champ1 | champ2 | field3 | field4 | field5 | field6 | field7 | field8 | field9 | field10 | field11 | field12 | | | field13

Comment puis-je réaliser cela en utilisant sed ou awk ou autre chose?
Toute aide est grandement appréciée!

TIA,
Stephan.
  #2 (permalink)  
Old 01-31-2008
Tytalus's Avatar
Tytalus Tytalus is offline Forum Advisor  
echo (1 .. 9) ^ 2 \; | bc
  
 

Date d'inscription: juin 2003
Lieu: Scotland
Messages: 431
ok - pas de gagner un beau prix pour le code, mais,

Code:
 awk -F"|" 'NF==16{print}NF==14{OFS="|";$16=$14;$14="";print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16}' infile
œuvres. Avec l'entrée que vous avez fournis, le texte suivant est l'o / p:

Code:
|field1|field2|field3|field4|field5|field6|field7|field8|field9|field10|field11|field12|||
|field1|field2|field3|field4|field5|field6|field7|field8|field9|field10|field11|field12|field13|fiel d14|field15
|field1|field2|field3|field4|field5|field6|field7|field8|field9|field10|field11|field12|||field13
HTH,
  #3 (permalink)  
Old 01-31-2008
stresing stresing is offline
Registered User
  
 

Join Date: Jan 2008
Messages: 3
Hey, merci pour votre réponse rapide!

Je ne suis pas assez au sujet de solutions - il travaille, et c'est important pour moi! Je viens de tester sur mon fichier réel et c'est ce que je cherchais!

Peut-être un jour, j'ai eu le temps de le souteneur de la déclaration -, mais je ne vais pas gagner un prix aussi ...

Merci encore!
  #4 (permalink)  
Old 01-31-2008
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
addict
  
 

Join Date: Jan 2007
Lieu: Варна, България / Milano, Italia
Posts: 2,849
Si c'est l'exigence:

Code:
awk 'NF==16||$NF=FS FS $NF' OFS="|" FS="|" filename
Utilisez nawk / ou usr/xpg4/bin/awk sur Solaris.
  #5 (permalink)  
Old 01-31-2008
Tytalus's Avatar
Tytalus Tytalus is offline Forum Advisor  
echo (1 .. 9) ^ 2 \; | bc
  
 

Date d'inscription: juin 2003
Lieu: Scotland
Messages: 431
maintenant vous y aller - c'est ce qui est un véritable gourou avec, et je suis impressionné - même jamais pensé que sournois solution.

joli morceau de code radoulov - je continue à apprendre quelque chose de nouveau à partir de vos messages - vous da man.
  #6 (permalink)  
Old 02-01-2008
stresing stresing is offline
Registered User
  
 

Join Date: Jan 2008
Messages: 3
Wow, c'est vraiment une solution élégante. Je n'aurais jamais trouvé que sur mes propres - bien sûr, que c'est la raison pour laquelle je la poste à l'Dummies forum ... Merci!
Closed Thread

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 11:33 AM.


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