Pergunta : Analisar gramaticalmente a lima do jil dos autosys using ferramentas de Unix

0.Still que tenta começ a resposta ao href= " http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Q_26137365.html " do
o ware/Office_Productivity/Office_Suites/MS_Office/Q_26137365.html
Now do e.com/Soft de http://www.experts-exchang eu estou tomando Unix puro ou apenas a aproximação de EXCEL, necessidade do
I de girar basicamente todas as fileiras em colunas com títulos quando o nome de coluna está antes “: ” em cada linha
1.How posso eu faço-a com ferramentas de Unix: Perl/sed/KSH/awk? o
2.How pode mim fá-la com macro de Excel? a estrutura do


The da lima de Jil é como esta:
/* ----------------- backupJIL ----------------- *

insert_job: job_type do backupJIL:
command de c: autorep - J TODO - q > _jil_bk
machine de /home/autosys/...p/autosys: machine
owner: autosys@machine
permission: gx, ge, wx, we
date_conditions: 1
days_of_week: a Turquia, nós, th, franco, sa
start_times: “17: 00 "
description: “Apoio diário
std_out_file das definições de trabalho ": t
std_err_file de /tmp/autosys_jil_backup.ou: r
alarm_if_fail de /tmp/autosys_jil_backup.er: 1
/* ----------------- BC_mount ----------------- * insert_job do

: Job_type de BC_mount: box_name do
de c: Comando de SAN_test_refresh_box
: máquina do .sh
de /sysadm/xp/bin/mountprodbc: proprietário do b_dexter
: autosys@/* ----------------- BC_mount ----------------- * insert_job do

: Job_type de BC_mount: box_name do
de c: Comando de S.fresh_box
: máquina do
de /sysadm/xp/bin..odbc.sh: proprietário do machine
: permissão do autosys@machine
: gx, condição do wx
: descrição do
do sucesso (Check_BC_Status): “Montar o BCs o
na máquina " std_out_file: >/var/tmp/mountprodbc.log
std_err_file: alarm_if_fail de >/var/tmp/mountprodbc.err
: 1
 

class= do

Resposta : Analisar gramaticalmente a lima do jil dos autosys using ferramentas de Unix

Eu fiz uma tarefa similar em Excel e envolveu as seguintes etapas básicas.

  • Conseguir os usuários entrar em onde as limas são encontradas. 
  • Recuperar uma lista cheia de limas que precisam de ser processadas. 
  • Para cada lima: 
    • Abrir a lima como uma lima de texto limitada using Workbooks.OpenText (basicamente todas suas fileiras entram a coluna A 
    • Introduzir fórmulas em colunas no manual de instruções aberto (B, C e D em meu caso) para analisar gramaticalmente cada linha nos dados exigidos 
    • Copiar os dados analisados gramaticalmente em uma tabela dos dados crus no manual de instruções sumário (uma fileira por a lima obviamente) 
    • Fechar o arquivo de dados crus porque é já não necessário 
  • Lima seguinte 

Usar basicamente o poder de Excel abrir cada lima, analisá-lo gramaticalmente, a seguir copiar os resultados em sua folha sumária que transforma as fileiras em colunas como você faz assim. Eu igualmente mantive uma coluna com o nome de arquivo de origem como parte da exposição sumária. Eu não posso unir um exemplo desde que contem a informação pessoal do pessoa mas o código deve lhe dar uma idéia.

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:
Opção explícita

sFolder público como a corda
sFilename público () como a corda
NFiles público como o inteiro

GetFileList secundário ()
varFileList não ofuscante como a variação
Escurecer i como o inteiro

    “Começ o diretório do usuário”
    Com Application.FileDialog (msoFileDialogFolderPicker)
        . Mostra
        Se .SelectedItems.Count = 0 retiram então o submarino “usuário cancelado”
        sFolder = .SelectedItems (1)
    Extremidade com
    
    “Começ uma lista de todas as limas neste diretório.”
    “Anotar que isto não é recursive… embora poderia ser…”
    varFileList = GetFileNames (sFolder, “*.txt”)
    
    Se não IsArray (varFileList) então
        MsgBox “nenhumas limas encontradas. ”, vbInformation
        Retirar o submarino
    Terminar se
    
    “Setup a disposição do nome de arquivo baseada no diretório selecionado”
    NFiles = UBound (varFileList) + 1
    sFilename de ReDim (1 a NFiles)
    
    “Copiar os nomes de arquivo em uma disposição da corda para o uso em outra parte”
    Para i = 0 a UBound (varFileList)
        sFilename (i + 1) = CStr (varFileList (i))
    Em seguida i
    
    OutputFilenames2XL
    ImportFileContent
Submarino da extremidade


Função confidencial GetFileNames (sPath de ByVal como a corda, sFilter opcional como a corda) como a variação
“   Retorna uma disposição de uma dimensão com nomes de arquivo”
“   Retorna de outra maneira falso”

F não ofuscante como a corda
Escurecer i como o inteiro
Escurecer FileList () como a corda

    Se sFilter = sFilter do "" então = “*.*”

    Selecionar o caso Right$ (sPath, 1)
      Encaixotar “\”, “/”
         sPath = Left$ (sPath, Len (sPath) - 1)
    Extremidade seleta

    Conserva FileList de ReDim (0)

    f = Dir$ (sPath & “\” & sFilter)
    Fazer quando Len (f) > 0
        Conserva FileList de ReDim (i) como a corda
        FileList (i) = f
        i = i + 1
        f = Dir$ ()
    Laço
    
    Se FileList (0) <> esvazia então
        GetFileNames = FileList
    Mais
        GetFileNames = falso
    Terminar se    
Terminar a função


Submarino confidencial OutputFilenames2XL ()
iBaseRow não ofuscante como o inteiro, iBaseCol como o inteiro
shTarget não ofuscante como a folha
Escurecer i como o inteiro

    Ajustar o shTarget = o Application.ActiveSheet
    iBaseRow = escala (“BaseCell”). Fileira
    iBaseCol = escala (“BaseCell”). Coluna

    “Povoar os campos de encabeçamento”
    shTarget.Range (“ImportDate”). Valor = agora
    shTarget.Range (“FolderPath”). Valor = sFolder
    shTarget.Range (“NFiles”) = NFiles
    
    “Povoar a coluna do nome de arquivo da tabela”
    Para i = 1 a NFiles
        shTarget.Cells (iBaseRow + i - 1, iBaseCol). Valor = sFilename (i)
    Em seguida i

    “Põr a fórmula para analisar gramaticalmente a identificação de transação na primeira coluna”
    shTarget.Range (pilhas (iBaseRow, iBaseCol - 1), pilhas (iBaseRow + NFiles - 1, iBaseCol - 1)).FormulaR1C1 = “=MID (R [0] C [1], LEN (R [0] C [1]) - 14.8)”
Submarino da extremidade


ImportFileContent secundário confidencial ()
Escurecer i como o inteiro, j como o inteiro
Escurecer o shTarget como a folha
Escurecer o iBaseRow como o inteiro, iBaseCol como o inteiro
Escurecer o shSource como a folha
Escurecer o sActiveFilename como a corda
Escurecer o sFullPath como a corda
Escurecer o iRowCount como o inteiro
Escurecer o iTargetColumn como o inteiro
Escurecer o rSourceRange como a escala

    Da “dados baixos loja para a folha que do alvo nós estamos construindo”
    Ajustar o shTarget = o Application.ActiveSheet
    iBaseRow = escala (“BaseCell”). Fileira
    iBaseCol = escala (“BaseCell”). Coluna
    
    
    “Processar agora cada nome de arquivo apenas importado à folha”
    Application.ScreenUpdating = falso
    Application.WindowState = xlMinimized
    Application.Calculation = xlCalculationManual
    Application.Visible = falso
            
    Da “barra do progresso instalação”
    frmProgress da carga
    frmProgress.ProgressBar.Max = NFiles
    frmProgress.ProgressBar.Value = 0
    frmProgress.Show
    
    Para i = 1 a NFiles
        sActiveFilename = sFilename (i)
        sFullPath = sFolder & “\” & sActiveFilename
        
        “Lima de texto limitada importação”
        Nome de arquivo de Workbooks.OpenText: =sFullPath, _
        Origem: =437, StartRow: =1, DataType: =xlDelimited, TextQualifier: = _
        xlDoubleQuote, ConsecutiveDelimiter: =False, aba: =True, Semicolon: =False, _
        Vírgula: =False, espaço: =False, outro: =False, FieldInfo: =Array (1, 1), _
        TrailingMinusNumbers: =True
        
        “Armazenar o nome da folha e o formato/adiciona as fórmulas exigidas”
        Ajustar o shSource = o Application.ActiveSheet
        iRowCount = Application.WorksheetFunction.CountA (colunas (“A: ”))
        shSource.Range (pilhas (1, 2), pilhas (iRowCount, 2)).FormulaR1C1 = “=FIND ("": "", R [0] C [- 1])”
        shSource.Range (pilhas (1, 3), pilhas (iRowCount, 3)).FormulaR1C1 = “=IF (DEIXADO (R [0] C [- 2], 7) = "" do comentário do "", 61, VALOR (MEADOS DE (R [0] C [- 2], 2, R [0] C [- 1] - 2)))”
        shSource.Range (pilhas (1, 4), pilhas (iRowCount, 4)).FormulaR1C1 = “=RIGHT (R [0] C [- 3], LEN (R [0] C [- 3]) - R [0] C [- 2] - 1)”

        “Certificar-se que as pilhas são atualizados com os dados atuais (somente necessários se o cálculo é ajustado ao manual)”
        shSource.Calculate
        
        “Copiam agora os dados analisados gramaticalmente resultantes nas pilhas corretas na folha do alvo”
        Para j = 1 ao iRowCount
            iTargetColumn = CInt (shSource.Cells (j, 3). Valor)
            Ajustar o rSourceRange = o shSource.Cells (j, 4)
            shTarget.Cells (iBaseRow + i - 1, iBaseCol + iTargetColumn). Valor = rSourceRange.Value
        J seguinte
        
        “Finalmente fim a lima do manual de instruções da fonte desde que nós somos terminados com ela”
        Manuais de instruções (sActiveFilename). SaveChanges próximo: =False
        
        frmProgress.ProgressBar.Value = i
        frmProgress.Repaint
        
    Em seguida i
    
    shTarget.Columns (“C: BK”) .EntireColumn.AutoFit
    
    frmProgress.Hide
    Application.Calculation = xlCalculationAutomatic
    Application.Calculate
    Application.ScreenUpdating = retificam
    Application.WindowState = xlMaximized
    Application.Visible = retificam
Submarino da extremidade
Outras soluções  
 
programming4us programming4us