![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Sådan klippes hel kolonne fra en fil og apend den til en anden fil som en anden kolonne | sakthifire | Shell Programmering og Scripting | 4 | 06-25-2008 05:27 AM |
| Flade fil | Krishnaramjis | Shell Programmering og Scripting | 9 | 05-08-2008 11:28 PM |
| Sådan kontrolleres Null-værdier i en fil kolonne efter kolonne, hvis kolonnerne er ikke NULLs | Mandab | Shell Programmering og Scripting | 7 | 03-15-2008 09:57 AM |
| XML til flade fil | balireddy_77 | Shell Programmering og Scripting | 2 | 04-13-2007 06:57 AM |
| Kolonne navne i flade filer | srivsn | Shell Programmering og Scripting | 1 | 12-27-2005 06:47 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
|||||
|
Dhruv,
Her er problemet igen .. Jeg har en fast kigge op fil, hvis kolonnen er i fast sekvens sige .. "MANDT Serail SERSCHA SEREX EQTYP BSTVP" Jeg har gemt denne sekvens i en variabel .. Nu Jeg får datafil, hvis kolonnen sekvens kunne differnt fra, at jeg har nævnt i se op strengen. Jeg vil gerne resuffle denne datafil i henhold til kolonne sekvens af look_up strengen. datafil kolonne sekvens kunne tilfælde -1 sekvens ---------- SERSCHA SEREX EQTYP BSTVP MANDT Serail 333 4343 fdfd fdfdf dssds fdfdf 343 343 Rere 43 FDF 4.343 tilfælde -2 sekvens: ------------------- SEREX EQTYP BSTVP MANDT Serail SERSCHA 121 3232 323 ddd sd 223 se rækkefølgen af disse fil hver gang sekvens af kolonne varierer. den endelige reaange af disse fil skal være baseret på kolonnen for de ser op [streng altid. Ok 1 Nu vil jeg resuffle denne datafil, således at kolonnen begynder med MANDT bør komme først derefter Serail ... så SERSCHA SEREX EQTYP og den endelige resuffle data skal vedlægge et filnavn sige final_data.txt |
|
||||
|
Code:
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
|
|
|||||
|
kontrollere dette indlæg
omarrangere fil baseret på opslag fil |
|
||||
|
Her er et alternativ i Python:
Code:
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)
Code:
MANDT SERAIL EQTYP SERSCHA SEREX BSTVP 510 hsgdfs 44 sercha sex1 bst233 510 bg 89 fg 23 98 510 gh 89 we sew mn Code:
/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 |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|