![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
|||||
|
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 |
|
||||
|
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
|
|
|||||
|
kolla det här inlägget
arrangera fil baserat på lookup fil |
|
||||
|
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 |