![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
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 |
| Ändra en kolumn i avgränsad fil kolumnen till fast bredd kolumn | manneni Prakash | Shell-programmering och Skript | 5 | 06-22-2009 05:27 |
| två files.say en och b.both har länge columns.i vill matcha kolumnen Fron 1:a fil w | TRUPTI | UNIX for Dummies Frågor & Svar | 4 | 10-17-2008 01:17 |
| Sätt första raden i en fil till första kolumnen av återstående filer | a_artha | Shell-programmering och Skript | 5 | 07-28-2008 05:47 |
| 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 |
| ansluta cols från flera filer till en fil | vbshuru | Shell-programmering och Skript | 2 | 11-20-2003 12:52 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Jag är ny i UNIX shell scripting. Jag är nyligen skapa en Excel rapport i UNIX (fil som skiljetecken är bra). Hur ska jag göra ett skript för att göra det?
1 fil att ansluta sig kommer från produktion av ett UNIX-kommando, den andra från en annan UNIX-kommando, och den tredje från en databas fråga. Nyckeln columes av alla dessa 3 filer kommer från en kartläggning fil. Det är i grunden enligt följande: MappingFile: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d jobb 1 a_name1 jobb 2 c_name2 jobb 3 b_name3 jobb 4 e_name4 file1_toJOIN: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d b_name3 12:00:03 15:00:09 e_name4 10:30:00 11:00:00 c_name2 09:40:00 10:12:00 a_name1 22:00:00 23:00:00 file2_toJOIN: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d jobb 2 tom 22 jobb 1 dan 18 jobb 4 jim 25 jobb 3 kim 20 det kalkylprogram att generera: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d jobb 1 22:00:00 23:00:00 01:00:00 dan 18 ...... Uppskattar din hjälp! |
|
||||
|
Prova detta!
Prova
för i "katt karta | awk 'BEGIN (FS \u003d" "), (print $ 1)'` göra mapkey1 \u003d $ i mapkey2 \u003d `cat map | grep $ mapkey1` mapkey2 \u003d `echo $ mapkey2 | awk 'BEGIN (FS \u003d" "), (print $ 2)'` file1key \u003d `cat fil1 | grep $ mapkey2` file1key \u003d `echo $ file1key | awk 'BEGIN (FS \u003d" "), (print $ 2, $ 3)'` file2key \u003d `cat fil2 | grep $ mapkey1` file2key \u003d `echo $ file2key | awk 'BEGIN (FS \u003d" "), (print $ 2, $ 3)'` echo $ i $ file1key $ file2key gjord karta - din karta fil fil1 - din file1_toJOIN fil2 - file2_toJOIN: O / pi fått är: jobb 1 22:00:00 23:00:00 dan 18 jobb 2 09:40:00 10:12:00 tom 22 jobb 3 12:00:03 15:00:09 kim 20 jobb 4 10:30:00 11:00:00 jim 25 |
|
||||
|
Uppskattar er båda.
Jag har provat första skriptet. Det fungerar perfekt. Jag känner lite svårt att förstå array, som ett shell script nybörjare. Men jag ska försöka i morgon, som det ser verkligen kompakt. Jag vill använda i framtiden. |
|
||||
|
Med kommentarer för bättre förståelse
# Öppna filen
för i "katt karta | awk 'BEGIN (FS \u003d" "), (print $ 1)'` göra # Kolumn1 i kartan fil är nyckeln till fil2 mapkey1 \u003d $ i mapkey2 \u003d `cat map | grep $ mapkey1` # Kolumn2 i kartan fil är nyckeln till file1 mapkey2 \u003d `echo $ mapkey2 | awk 'BEGIN (FS \u003d" "), (print $ 2)'` # Val värden från fil1 baserad på mapkey2 från kartan fil file1key \u003d `cat fil1 | grep $ mapkey2` file1key \u003d `echo $ file1key | awk 'BEGIN (FS \u003d" "), (print $ 2, $ 3)'` # Val värden från fil2 baserad på mapkey1 från kartan fil file2key \u003d `cat fil2 | grep $ mapkey1` file2key \u003d `echo $ file2key | awk 'BEGIN (FS \u003d" "), (print $ 2, $ 3)'` # Diplay resultaten echo $ i $ file1key $ file2key gjord |