The UNIX and Linux Forums  

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
la fusion de deux fichiers vakharia Mahesh De programmation et de script Shell 7 09-15-2008 01:32 PM
Fusionner des tableaux jakSun8 De programmation et de script Shell 4 07-02-2008 12:13 AM
Fusionner deux fichiers venommaker UNIX pour les nuls Questions et réponses 4 01-10-2008 08:15 AM
Fusion d'infos Manan De programmation et de script Shell 3 05-20-2006 08:51 AM
Merging Aide kumarc De programmation et de script Shell 3 05-04-2006 03:24 PM

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-05-2009
ssachins ssachins is offline
Registered User
  
 

Date d'inscription: janvier 2009
Messages: 29
La fusion de lignes

Salut les gars,

Vous souhaite à tous une très Bonne Année!.

Merci d'avance.

Je veux lire un fichier et de fusionner les lignes qui ont un '\ n' en elle.
Les lignes peuvent être> 50000 octets. Le script devrait fusionner toutes les lignes jusqu'à la ligne suivante commence par mot «Type | '.
ex.
Type | Ticket | TradeID | 42224A | SystemID | DDDD61266 | SourceSystem | RMS | Version | 5 | LatestVersionYN | Y | Counterpa rty | OB | DBLegalEntity | Londres | Notes | cal ajouté événements | Vendeur | DHX | LastUpdated | DEC 2008 18:31 : 40 | Action | Exp | DealCaptureSystem | Ventes | CustomerSourceSystem | RMS | Service à la clientèle | AUGS | ActionEffectiveDa te | DEC 2008 00:00:00 | BookingLocation | London | EnteredBy | Gonu | MarkupAmt | 100 | MarkupCcy | KEX | PremiumCurrency | EUR | Premi umAmount | 000 | PremiumDate | DEC 2008 | PremiumHasPaidYN | N | BookingDetails | 9000/mihl
Client vend KEZUSD
st ref 1.3724
Sele de levier est à ST
52 sele, à partir


Type | FxDiscreteDNT | TradeID | SSA32553H | SystemID | GGT04481 | SourceSystem | RMS | SourceSystemBook | OT | Book | OT | BookBranchParent | Go | Version | 8 | LatestVersionYN | Y | Counterparty | DOB | Situation | KnockedOut | IsLiveYN | N | DBLega lEntity | London | LastUpdated | JAN 2009 00:26:35 | Action | KnockedOut | CounterpartySourcesystem | RMS | TradeDate | JUL 2006 | ProductID | KKI99106 | StructureID | DDS32553 | DealCaptureSystem | RMS | CustomerSourceSystem | RMS | Service à la clientèle | ESL | PricingSite | Option | UnderCurrency1 | JPY | AccCurrency1 | US | UpBarrier1 | 1.5 | LowBarrier1 | 1 | UnderCurrenc y2 | JPY | AccCurrency2 | CH | UpBarrier2 | 1,64 | LowBarrier2 | 1,49 | UnderCurrency3 | EUR | AccCurrency3 | JPY | UpBarrie r3 | 175 | LowBarrier3 | 105 | LastFixed

Le outout devrait être
Le dossier ci-dessous doit être sur une seule ligne.

Type | Ticket | TradeID | 42224A | SystemID | DDDD61266 | SourceSystem | RMS | Version | 5 | LatestVersionYN | Y | Counterpa rty | OB | DBLegalEntity | Londres | Notes | cal ajouté événements | Vendeur | DHX | LastUpdated | DEC 2008 18:31 : 40 | Action | Exp | DealCaptureSystem | Ventes | CustomerSourceSystem | RMS | Service à la clientèle | AUGS | ActionEffectiveDa te | DEC 2008 00:00:00 | BookingLocation | London | EnteredBy | Gonu | MarkupAmt | 100 | MarkupCcy | KEX | PremiumCurrency | EUR | Premi umAmount | 000 | PremiumDate | DEC 2008 | PremiumHasPaidYN | N | BookingDetails | 9000/mihl Client vend KEZUSD st ref 1.3724 Leveraged Sele est à sele ST 52, à partir

Type | FxDiscreteDNT | TradeID | SSA32553H | SystemID | GGT04481 | SourceSystem | RMS | Version | 8 | LatestVersionYN | Y | Counterparty | Naissance | DBLegalEntity | London | LastUpdated | JAN 2009 00:26:35 | Action | KnockedOut | DealCaptureSystem | RMS | CustomerSourceSystem | RMS | Service à la clientèle | ESL | PricingSite | O ption | UnderCurrency1 | JPY | AccCurrency1 | US | UnderCurrency3 | EUR | AccCurrency3 | JPY | UpBarrier3 | 175 | LowBarri ER3 | 105 | LastFixed

J'ai essayé d'utiliser le script ci-dessous, mais ne peut pas gérer AWK> 20000 octets. Aussi, l'aide de cordes de "LINE_BREAK 'pour l'identification des lignes ont fusionné.

FileName \u003d LINE_TEST.TXT
FileName1 \u003d O_LINE_TEST.TXT
Fichier_sortie \u003d OUTPUT_WITHOUT_LINE_BREAK.tmp
if [[-e $ FileName]], puis
sed "s /% / pourcentage / g" $ FileName> $ FileName1
# # Pour supprimer '%' comme 'awk' ne peut pas gérer.

/ usr/xpg4/bin/awk 'NR \u003d\u003d 1 (printf $ 0;) prochaine
! / ^ TradeType / (printf "LINE_BREAK" $ 0;) prochaine
(printf "\ n" $ 0)
END (print "")
'$ FileName1> $ fichier_sortie
fi
  #2 (permalink)  
Old 01-05-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lieu: Варна, България / Milano, Italia
Posts: 2,926
Essayez avec nawk:


Code:
nawk '$1=$1' FS='\n' RS= ORS='\n\n' infile

  #3 (permalink)  
Old 01-05-2009
ssachins ssachins is offline
Registered User
  
 

Date d'inscription: janvier 2009
Messages: 29
Fusion de lignes - erreur

Je reçois l'erreur ci-dessous:

13460 Segmentation Fault (coredump). Est-il lié Mémoire?

La taille réelle du fichier est: 95532469 octets.
  #4 (permalink)  
Old 01-05-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lieu: Варна, България / Milano, Italia
Posts: 2,926
Essayez avec Perl:


Code:
perl -00ple'tr.\n. .' infile

  #5 (permalink)  
Old 01-05-2009
ssachins ssachins is offline
Registered User
  
 

Date d'inscription: janvier 2009
Messages: 29
Identifier

Comment identfy lignes qui ont été fusionnés lors du traitement du dossier?
  #6 (permalink)  
Old 01-05-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lieu: Варна, България / Milano, Italia
Posts: 2,926
Citation:
Posté par ssachins View Post
Comment identfy lignes qui ont été fusionnés lors du traitement du dossier?
Il suffit de joindre une chaîne de caractères pour les identifier:


Code:
perl -00ple'tr.\n. . and $_.=" __FIXED__"' infile

  #7 (permalink)  
Old 01-06-2009
frostmourn frostmourn is offline
Registered User
  
 

Date d'inscription: janvier 2009
Messages: 8

Code:
sed '/^Type/{:a;N;/\nType/!{s/\n/ /;ba};s/\n/&&/}'

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 02:28 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