Fråga : Parse autosys som jil sparar using Unix bearbetar

alla prövas 0.Still att få svaret till href= " http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Q_26137365.html " för
förmiddagen för ware/Office_Productivity/Office_Suites/MS_Office/Q_26137365.html
Now I för http://www.experts-exchang e.com/Soft tar ren Unix eller EXCEL precis, att närma sig, behov för
I i stort att hänga ror in i kolonner med titlar, när den kända kolonnen är för ”: ” på varje fodra
1.How kan mig gör den med Unix bearbetar: perl/sed/ksh/awk?
2.How kan mig gör den med Excelmakro?


The strukturerar av Jil sparar är lik detta:
/* ----------------- backupJIL ----------------- *

insert_job: backupJILjob_type: c-
command: autorep - ALLT J - q > /home/autosys/...p/autosys _jil_bk
machine: machine
owner: autosys@machine
permission: gx ge, wx, we
date_conditions: 1
days_of_week: tu oss, th, fr, sa
start_times: ”17: 00 "
description: ”Dagligen reserv
std_out_file av för jobbdefinitioner ": /tmp/autosys_jil_backup.ou t
std_err_file: /tmp/autosys_jil_backup.er r
alarm_if_fail: 1
/* ----------------- BC_mount ----------------- * insert_job för

: BC_mount job_type: box_name för c-
: SAN_test_refresh_box
befaller: /sysadm/xp/bin/mountprodbc .sh
bearbetar med maskin: ägare för b_dexter
: autosys@/* ----------------- BC_mount ----------------- * insert_job för

: BC_mount job_type: box_name för c-
: S.fresh_box
befaller: /sysadm/xp/bin..odbc.sh
bearbetar med maskin: ägare för machine
: tillåtelse för autosys@machine
: gx wx
villkorar: beskrivning för
för framgång (Check_BC_Status): ”Montera BCsen bearbetar med maskin på " std_out_file
: std_err_file >/var/tmp/mountprodbc.log
: alarm_if_fail för >/var/tmp/mountprodbc.err
: 1
 

" klar "

Svar : Parse autosys som jil sparar using Unix bearbetar

Jag har gjort en liknande uppgift i Excel, och den som är involverad efter grundläggande, kliver.

  • Få användarena matar in på var sparar lokaliseras. 
  • Hämta ett fullt listar av sparar det behov att bearbetas. 
  • För varje spara: 
    • Öppna spara, som en avgränsad text sparar using Workbooks.OpenText (allt ditt ror i stort kommet in i kolonn A 
    • Mellanläggsformler in i kolonner i den öppnade arbetsboken (B, C och D i mitt fall) som parse varje, fodrar in i de krävda datan 
    • Kopiera de parsed datan in i rå data bordlägger i den summariska arbetsboken (man ror per sparar självfallet), 
    • Nära den rå datafilen, som den är ej längre nödvändig 
  • Spara därefter 

Använd i stort driva av Excel för att öppna varje sparar, parse den, då kopierar resultaten in i ditt summariskt täcker omformning ror in i kolonner, som du gör så. Jag höll också en kolonn med den påbörjande filenamen som delen av det summariskt för att bordlägga. Jag kan inte fästa ett exempel, sedan det innehåller folkets personliga info, men kodifiera bör ge dig en idé.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
Explicit alternativ

Offentlig sFolder som stränger
Offentlig sFilename () som stränger
Offentliga NFiles som heltal

UnderGetFileList ()
Dunkel varFileList som Variant
Dunkelt I som heltal

    ”Få arkivet från användaren”,
    Med Application.FileDialog (msoFileDialogFolderPicker)
        . Show
        Om .SelectedItems.Count = 0 går ut därefter suben ”den avbrutna användaren”,
        sFolder = .SelectedItems (1)
    Avsluta med
    
    ”Få en lista sparar allra i detta arkiv.”,
    ”Notera att detta inte är recursive…, även om den kunde vara…”,
    varFileList = GetFileNames (sFolder, ”*.txt”)
    
    Om inte IsArray (varFileList) därefter
        Ingen MsgBox ”sparar funnit. ” vbInformation
        Gå ut suben
    Avsluta om
    
    ”Ställa in filenamesamlingen som baseras på det utvalda arkivet”,
    NFiles = UBound (varFileList) + 1
    ReDim sFilename (1 till NFiles)
    
    ”Kopiera filenamesna in i en strängasamling för bruk någon annanstans”,
    För I = 0 till UBound (varFileList)
        sFilename (I + 1) = CStr (varFileList (I))
    Därefter i
    
    OutputFilenames2XL
    ImportFileContent
Avsluta suben


Privat fungera GetFileNames (ByVal sPath som stränger, valfri sFilter som stränger) som Variant
”   Går den tillbaka - dimensionell samling med filenames”,
”   Går annars falskt tillbaka”,

Dunkelt f som stränger
Dunkelt I som heltal
Dunkla FileList () som stränger

    Om sFilter = sFilter för "" därefter = ”*.*”,

    Välj fallet Right$ (sPath, 1)
      Case ”\”, ”/”,
         sPath = Left$ (sPath, Len (sPath) - 1)
    Avsluta valt

    ReDim sylt FileList (0)

    f = Dir$ (sPath & ”\” & sFilter)
    Gör stunder Len (f) > 0
        ReDim sylt FileList (I) som stränger
        FileList (I) = f
        i = I + 1
        f = Dir$ ()
    Kretsa
    
    Om FileList (0) <> tömmer därefter
        GetFileNames = FileList
    Annars
        GetFileNames = falskt
    Avsluta om    
Avsluta fungerar


Privat Sub OutputFilenames2XL ()
Dunkel iBaseRow som heltalet, iBaseCol som heltal
Dunkel shTarget som arbetssedeln
Dunkelt I som heltal

    Fastställd shTarget = Application.ActiveSheet
    iBaseRow = spänner (”BaseCell”). Ro
    iBaseColen = spänner (”BaseCell”). Kolonn

    ”Befolka titelraden sätter in”,
    shTarget.Range (”ImportDate”). Värdera = nu
    shTarget.Range (”FolderPath”). Värdera = sFolder
    shTarget.Range (”NFiles”) = NFiles
    
    ”Befolka filenamekolonnen av bordlägga”,
    För I = 1 till NFiles
        shTarget.Cells (iBaseRow + I - 1, iBaseCol). Värdera = sFilename (I)
    Därefter i

    ”Sätt formeln för att parse transaktionsID in i den första kolonnen”,
    shTarget.Range (celler (iBaseRow, iBaseCol - 1), celler (iBaseRow + NFiles - 1, iBaseCol - 1)).FormulaR1C1 = ”=MID (R [0] C [1], LEN (R [0] C [1]) - 14.8)”,
Avsluta suben


Privata underImportFileContent ()
Dunkelt I som heltal, j som heltal
Dunkel shTarget som arbetssedeln
Dunkel iBaseRow som heltalet, iBaseCol som heltal
Dunkel shSource som arbetssedeln
Dunkel sActiveFilename som stränger
Dunkel sFullPath som stränger
Dunkel iRowCount som heltal
Dunkel iTargetColumn som heltal
Dunkel rSourceRange som spänner

    ”Lagret baserar data för uppsätta som målarbetssedeln som vi bygger”,
    Fastställd shTarget = Application.ActiveSheet
    iBaseRow = spänner (”BaseCell”). Ro
    iBaseColen = spänner (”BaseCell”). Kolonn
    
    
    ”Bearbeta nu varje filename som importeras precis till arbetssedeln”,
    Application.ScreenUpdating = falskt
    Application.WindowState = xlMinimized
    Application.Calculation = xlCalculationManual
    Application.Visible = falskt
            
    ”Ställa in framsteg bommar för”,
    Ladda frmProgress
    frmProgress.ProgressBar.Max = NFiles
    frmProgress.ProgressBar.Value = 0
    frmProgress.Show
    
    För I = 1 till NFiles
        sActiveFilename = sFilename (I)
        sFullPath = sFolder & ”\” & sActiveFilename
        
        ”Importen avgränsad text sparar”,
        Workbooks.OpenText-Filename: =sFullPath _,
        Beskärning: =437 StartRow: =1 DataType: =xlDelimited TextQualifier: = _,
        xlDoubleQuote ConsecutiveDelimiter: =False flik: =True semikolon: =False _,
        Komma: =False utrymme: =False annan: =False FieldInfo: =Array (1, 1), _,
        TrailingMinusNumbers: =True
        
        ”Lagra den kända täcka och formatera/tillfoga krävda formler”,
        Fastställd shSource = Application.ActiveSheet
        iRowCount = Application.WorksheetFunction.CountA (kolonner (”A: ”))
        shSource.Range (celler (1, 2), celler (iRowCount, 2)).FormulaR1C1 = ”=FIND ("": "" R [0] C [- 1])”,
        shSource.Range (celler (1, 3), celler (iRowCount, 3)).FormulaR1C1 = ”LÄMNAD, =IF ((R [0] C [- 2], 7) = "" kommentar"", 61, VÄRDERAR (MITT- (R [0] C [- 2], 2, R [0] C [- 1] - 2))),”,
        shSource.Range (celler (1, 4), celler (iRowCount, 4)).FormulaR1C1 = ”=RIGHT (R [0] C [- 3], LEN (R [0] C [- 3]) - R [0] C [- 2] - 1)”,

        ”Se till att cellerna uppdateras med strömdatan (som behövs endast, om beräkningen är fastställd till handboken)”,
        shSource.Calculate
        
        ”Kopiera nu de resulterande parsed datan in i de korrekta cellerna på uppsätta som målarbetssedeln”,
        För j = 1 till iRowCount
            iTargetColumn = CInt (shSource.Cells (j, 3). Värdera),
            Fastställd rSourceRange = shSource.Cells (j, 4)
            shTarget.Cells (iBaseRow + I - 1, iBaseCol + iTargetColumn). Värdera = rSourceRange.Value
        Nästa j
        
        ”Slutligen tätt källarbetsboken sparar, sedan vi avslutas med den”,
        Arbetsböcker (sActiveFilename). Nära SaveChanges: =False
        
        frmProgress.ProgressBar.Value = I
        frmProgress.Repaint
        
    Därefter i
    
    shTarget.Columns (”C: BK”) .EntireColumn.AutoFit
    
    frmProgress.Hide
    Application.Calculation = xlCalculationAutomatic
    Application.Calculate
    Application.ScreenUpdating = True
    Application.WindowState = xlMaximized
    Application.Visible = True
Avsluta suben
Andra lösningar  
 
programming4us programming4us