The UNIX and Linux Forums  


Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Att skära hel kolumn från en fil och apend det till en annan fil som en annan kolumn sakthifire Shell-programmering och Skript 4 06-25-2008 05:27
Flat fil Krishnaramjis Shell-programmering och Skript 9 05-08-2008 11:28
Så kontrollerar du Null värden i en fil kolumn efter kolumn om kolumnerna är inte NULLs Mandab Shell-programmering och Skript 7 03-15-2008 09:57
XML till flat fil balireddy_77 Shell-programmering och Skript 2 04-13-2007 06:57
Kolumn namn i platta filer srivsn Shell-programmering och Skript 1 12-27-2005 06:47

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 Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 09-15-2006
jambesh's Avatar
jambesh jambesh is offline
Registered User
  
 

Join Date: Aug 2006
Ort: Pune, Indien
Inlägg: 137
Slå upp kolumn i en flat fil

Här är den mer gå! Behöver du en genväg till mitt problem!

Problemet är att jag har en look_update med fast sekvens av kolumn
det vill säga:

Mandt: Sérail: SERSCHA: SEREX: EQTYP: BSTVP
Jag kommer att få data i en flat fil med samma antal spalt men sekvensen kan vara olika för varje gång

till exempel
Sérail Mandt SERSCHA SEREX EQTYP BSTVP
510 1 f g sr
510 2 g S t
510 3 g S 2
510 4 g S 2
510 Z001 g S
510 Z004 f gr S 2
510 ZPM1 f er M 1
510 ZPM2 76 M 1

här sekvensen av kolonnen är inte vad det i look up string
Det bör i ordningsföljd se upp strängen.
Jag vill ordna data i denna tabell i look up sekvens och lägg den i en annan filnal_data fil

varje gång clientdata kan komma i differnt sekvens men jag måste ordna kolumnen i ordningsföljd lookup_string och bifoga det till finalbordet

Hope u all got my problem! Please bistå
  #2 (permalänk)  
Old 09-15-2006
Dhruva's Avatar
Dhruva Dhruva is offline
Registered User
  
 

Join Date: mars 2006
Plats: Indien
Inlägg: 255
jambesh kan du förklara igen och tydligt som hjälper oss att förstå och du kommer att få mer exakta svar
  #3 (permalänk)  
Old 09-15-2006
jambesh's Avatar
jambesh jambesh is offline
Registered User
  
 

Join Date: Aug 2006
Ort: Pune, Indien
Inlägg: 137
Dhruv,
Här är det problem igen ..
Jag har en fast leta upp filen vars kolumn är i fasta sekvens säga ..
"Mandt Sérail SERSCHA SEREX EQTYP BSTVP"
Jag har lagrat denna sekvens i en variabel ..
Nu

Jag får datafil vars kolumn sekvens kan differnt från att jag nämner i utseendet upp strängen.

Jag vill resuffle datafilen enligt kolumnen sekvensen av look_up strängen.

datafil kolumn sekvens kan

fallet -1 sekvens
----------

SERSCHA SEREX EQTYP BSTVP Mandt Serail
333 4343 fdfd fdfdf dssds fdfdf
343 343 rere 43 FDF 4343

fall -2 sekvens:
-------------------
SEREX EQTYP BSTVP Mandt Serail SERSCHA
121 3232 323 DDD SD 223


se sekvensen av dessa filer varje gång sekvens av kolumn varierar.
slutliga reaange av dessa filer bör baseras på kolonnen med utseendet upp [string alltid.



Ok
1

Nu vill jag resuffle datafilen så att kolumnen som börjar med

Mandt bör komma först sedan Sérail ... sedan SERSCHA SEREX EQTYP

och de slutliga resuffle uppgifter bör läggas till ett filnamn säga final_data.txt
  #4 (permalänk)  
Old 09-15-2006
anbu23 anbu23 is offline Forum Advisor  
Registered User
  
 

Join Date: mars 2006
Ort: Bangalore, Indien
Inlägg: 1.398

Kod:
awk -v str="MANDT SERAIL SERSCHA SEREX EQTYP BSTVP" '
NR == 1 {
    n=split( str , arr , " " )
    for( i = 1; i <= n ; ++i )
        arr_ac[$i]=i
    for( i = 1; i <= n ; ++i )
        col[i]=arr_ac[arr[i]]
    print str 
}
NR > 1 {
    for(i = 1; i <= n ; ++i )
        printf("%s ",$col[i])
    printf("\n")
}
' file >> final_data.txt

  #5 (permalänk)  
Old 09-18-2006
Dhruva's Avatar
Dhruva Dhruva is offline
Registered User
  
 

Join Date: mars 2006
Plats: Indien
Inlägg: 255
kolla det här inlägget
arrangera fil baserat på lookup fil
  #6 (permalänk)  
Old 09-18-2006
ghostdog74 ghostdog74 is offline Forum Advisor  
Registered User
  
 

Join Date: Sep 2006
Inlägg: 2555
Här är ett alternativ i Python:

Kod:
def transpose(matrix):        
        return [[matrix[y][x] for y in range(len(matrix))]for x in range(len(matrix[0]))]


all = open("input.txt").readlines()
lookupstring = ['MANDT', 'SERSCHA','SERAIL' , 'SEREX', 'EQTYP', 'BSTVP']
listing = [ i.split() for i in all ] 
results =  transpose(listing)
final= [ r for items in lookupstring for r in results if items == r[0] ]
for i in transpose(final):
        print ','.join(i)

Ingång:

Kod:
MANDT SERAIL EQTYP SERSCHA SEREX BSTVP
510   hsgdfs 44    sercha  sex1  bst233
510   bg     89    fg      23    98
510   gh     89    we      sew   mn

Effekt:

Kod:
/home>python test.py
MANDT,SERSCHA,SERAIL,SEREX,EQTYP,BSTVP
510,sercha,hsgdfs,sex1,44,bst233
510,fg,bg,23,89,98
510,we,gh,sew,89,mn

Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 03:33.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0