![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| UNIX for Dummies Frågor & Svar Om du inte är säker på var att skriva en UNIX eller Linux fråga efter det här. Alla UNIX-och Linux-nybörjare välkomna! |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Läs csv i Hash array? | kinmak | Shell-programmering och Skript | 1 | 05-07-2008 11:35 |
| skapa array innehav tecken från sring sedan echo matris. | rorey_breaker | Shell-programmering och Skript | 5 | 09-28-2007 09:42 |
| Från fil till Array | Rock | Shell-programmering och Skript | 2 | 02-08-2007 06:10 |
| Dump en rad i en fil | IMD | Shell-programmering och Skript | 3 | 08-31-2006 11:04 |
| Hur kan jag läsa array element dynamiskt i bash? | haisubbu | UNIX for Dummies Frågor & Svar | 1 | 08-29-2006 03:19 |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
||||
|
Hur man läser från txt-fil och använda den som en array
Hej Killar
How u all doing? Jag har tuff tid för att uppnå detta har jag en unix. Ksh script som kräver sql script Just nu harcoded kolumn id's i SQL-script men jag vill läsa dem från en txt-fil 1084,1143,1074,1080,1091,1090,1101,1069,1104,1087,1089,1081 Jag vill läsa denna fil som en matris i min sql script Min KSH skript #! / usr / bin / ksh DIRNAME \u003d "dirname $ 0" # Inrätta miljö för Oracle-baserade SMO databas exempel . $ Dirname / defaults_env.ksh echo "Enter regionen (dvs. 001 eller 002):" Läs sdzone; export userfile \u003d "cvsusers.txt" Logfile \u003d $ dirname / cvs_users_defaults.log TIME \u003d `date` # kontroller för att se om loggfilerna är närvarande, om inte så skapar det if [-a $ dirname / cvs_users_defaults.log] sedan : annan touch $ dirname / cvs_users_defaults.log fi # Kontrollerar att se om en datafil (cvsusers.txt) finns för en belastning. if [-a $ dirname / passwd] sedan # Listan över userIds levereras från användarid fil INFILE \u003d $ username; echo "Använda filen $ INFILE som underlag för användar-ID"; echo ""; echo "igång processen på $ TIME">> $ logfile echo "Calling förfarande för att initiera användare" för userid in `cat $ INFILE` göra echo "Lagring av användardata Defaults för användaren" $ userid>> $ logfile userIdLength \u003d `expr längd $ userid` if [$ userIdLength-gt 8] sedan echo "längd UserID" $ userid "är för lång">> $ logfile annan echo "Ansluta till SQL">> $ logfile if [[$ sdzone \u003d '001 ']]; sedan sqlplus-s $ ZONE1_USERNAME_525 / $ ZONE1_PASSWRD_525 @ $ ZONE1_DBNAME_525 \ @ $ dirname / SQL / cvs_users_defaults.sql $ userid>> loggfil echo "Connected to SQL">> $ logfile elif [[$ sdzone \u003d '002 ']]; sedan sqlplus-s $ ZONE2_USERNAME_525 / $ ZONE2_PASSWRD_525 @ $ ZONE2_DBNAME_525 \ @ $ dirname / SQL / cvs_users_defaults.sql $ userid>> loggfil echo "Connected to SQL">> $ logfile annan echo "Ogiltig regionskod!" exit; fi fi gjord # byta namn på filen efter bearbetning logtime \u003d `date" +% Y% m% d% H% M% S "` newUserFile \u003d "cvs_users_processed_" $ logtime ". txt" mv passwd $ newUserFile echo "Avsluta process för att fastställa användarens uteblivna betalningar på $ TIME">> $ logfile echo Check "loggfilen på $ logfile" exit 0 annan # IF "custsoncologyusers.txt" filen finns inte i dirname sedan avsluta värdigt echo "Ingen användare default file ($ username) finns att ladda" echo "Ingen användare default file ($ username) finns att ladda">> $ logfile echo "Avsluta process användare standard med en avkastning kod 0 till $ TIME">> $ logfile exit 0 fi Detta är min SQL-script (cvs_users_defaults.sql) NÄR SQLERROR EXIT SQL.SQLCODE; uppsättning serveroutput på; uppsättning kontrollera off; uppsättning feedback off; deklarera userid s_user_cust_acct.user_id% TYPE: \u003d '& 1'; TYP t_col_id_tab IS TABLE OF nummer; my_col_id t_col_id_tab; TYP t_col_seq_num_tab IS TABLE OF nummer; my_col_seq_num t_col_seq_num_tab; TYP t_all_col_id_tab IS TABLE OF nummer; all_col_id t_all_col_id_tab; tcount nummer; starta SELECT COUNT (*) i tcount från s_column_atrb där user_id \u003d UPPER (användarid) och screen_typ_cd \u003d 0; if (tcount> 0) THEN dbms_output.put_line (uppdatering s_column_atrb '| | userid); - För beställningar (Jag kodade hård kedjan här, men jag vill läsa detta från. Ksh script genom att mata den med en txt-fil) all_col_id: \u003d t_all_col_id_tab (1069,1071,1072,1073,1074,1075,1076,1077,1078,1080,1081,1082,1083,1084,1085,1086,108 7,1088,1089,1090,1091,1101, 1102,1103,1104,1114,1115,1116,1117,1118,1119,1120,1122,1123,1124,1125,112 6,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136 , 1137,1138,1139,1140,1141,1142,1143,1144,1145,114 6,1147,1148,1149,1150,1151,1152,1154,1169,1178,1182,1183,1195); my_col_id: \u003d t_col_id_tab (1084,1143,1074,1080,1091,1090,1101,1069,1104,1087,1089,1081); my_col_seq_num: \u003d t_col_seq_num_tab (4,12,2,6,7,8,10,1,9,3,5,11); For i in 1 .. 12 LOOP dbms_output.put_line (my_col_id ( '| | i | |') är '| | my_col_id (i)); update s_column_atrb ställa show_hide_ind \u003d "Y", column_seq_num \u003d my_col_seq_num (i) där user_id \u003d UPPER (användarid) och screen_typ_cd \u003d 0 och col_id \u003d my_col_id (i); END LOOP; end; / exit kan någon kropp hjälpa till att få detta gjort Tack på förhand Pinky |