Вопрос : Parse архив jil autosys using инструменты Unix

0.Still пытаясь получить ответ к href= " http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Q_26137365.html "
ware/Office_Productivity/Office_Suites/MS_Office/Q_26137365.html
Now e.com/Soft http://www.experts-exchang я попытаюсь чисто Unix или как раз приблизитьсяу ЭКСЕЛ, потребности
I основно сделать поворот все рядки в колонки с названиями когда имя колонки перед «: » на каждой линии
1.How могу я делаю ее с инструментами Unix: perl/sed/ksh/awk?
2.How может я делает его с макросом Эксел? структура


The архива Jil как это:
/* ----------------- backupJIL ----------------- *

insert_job: job_type backupJIL:
command c: autorep - J ВСЕ - q > _jil_bk
machine /home/autosys/...p/autosys: machine
owner: autosys@machine
permission: gx, ge, wx, we
date_conditions: 1
days_of_week: tu, мы, th, fr, sa
start_times: «17: 00 "
description: «Ежедневная подпорка
std_out_file определений работы ": t
std_err_file /tmp/autosys_jil_backup.ou: r
alarm_if_fail /tmp/autosys_jil_backup.er: 1
/* ----------------- BC_mount ----------------- * insert_job

: Job_type BC_mount: box_name
c: Командование SAN_test_refresh_box
: машина .sh
/sysadm/xp/bin/mountprodbc: предприниматель b_dexter
: autosys@/* ----------------- BC_mount ----------------- * insert_job

: Job_type BC_mount: box_name
c: Командование S.fresh_box
: машина
/sysadm/xp/bin..odbc.sh: предприниматель machine
: позволение autosys@machine
: gx, условие wx
: описание
успеха (Check_BC_Status): «Установите BCs на
машине " std_out_file: >/var/tmp/mountprodbc.log
std_err_file: alarm_if_fail >/var/tmp/mountprodbc.err
: 1
 

class=

Ответ : Parse архив jil autosys using инструменты Unix

Я делал подобную задачу в Эксел и его задействованное следующий основные шаги.

  • Получите, что потребителей input на где архивы обнаружены местонахождение. 
  • Восстановите полный список архивов нужно быть обработанным. 
  • Для каждого архива: 
    • Раскройте архив как размежеванный архив текста using Workbooks.OpenText (основно все ваши рядки приходят в колонку a 
    • Введите формулы в колонки в раскрынном workbook (b, c и d в мой случай) для того чтобы parse каждая линия в требуемые данные 
    • Скопируйте parsed данные в таблицу первоначальных данных в общем workbook (один рядок в архив очевидно) 
    • Закройте архив первоначальных данных по мере того как он не более длинние необходимыми 
  • Следующий архив 

Основно используйте силу Эксел раскрыть каждый архив, parse она, тогда копируйте результаты в ваш общий лист преобразовывая рядки в колонки по мере того как вы делаете так. Я также держал колонку с возникая filename как часть сводной таблицы. Я не могу прикрепить пример в виду того что он содержит info людей личный но Кодий должно дать вам идею.

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:
Вариант точный

Общественное sFolder как шнур
Общественное sFilename () как шнур
Общественное NFiles как интежер

Sub GetFileList ()
Тусклое varFileList как вариант
Затемните I как интежер

    «Получите директорию от потребителя»
    С Application.FileDialog (msoFileDialogFolderPicker)
        . Выставка
        Если .SelectedItems.Count = 0 после этого выходят подводная лодка «отмененный потребитель», то
        sFolder = .SelectedItems (1)
    Конец с
    
    «Получите список всех архивов в этой директории.»
    «Заметьте что это не рекурсивно… хотя оно smogло быть…»
    varFileList = GetFileNames (sFolder, «*.txt»)
    
    Если не IsArray (varFileList) после этого
        MsgBox «никакие, котор архивы не нашли. », vbInformation
        Выходите подводная лодка
    Закончитесь если
    
    «Setup блок filename основанный на выбранной директории»
    NFiles = UBound (varFileList) + 1
    sFilename ReDim (1 к NFiles)
    
    «Скопируйте filenames в блок шнура для пользы в другом месте»
    Для I = 0 к UBound (varFileList)
        sFilename (I + 1) = CStr (varFileList (I))
    Затем iий
    
    OutputFilenames2XL
    ImportFileContent
Подводная лодка конца


Приватная функция GetFileNames (sPath ByVal как шнур, опционное sFilter как шнур) как вариант
«   Возвращает одноразмерный блок с filenames»
«   В противном случае возвращает ложное»

Тусклый f как шнур
Затемните I как интежер
Затемните FileList () как шнур

    Если sFilter = sFilter "" после этого = «*.*», то

    Выберите случай Right$ (sPath, 1)
      Покрывайте «\», «/»
         sPath = Left$ (sPath, Len (sPath) - 1)
    Конец отборный

    Заповедник FileList ReDim (0)

    f = Dir$ (sPath & «\» & sFilter)
    Сделайте пока Len (f) > 0
        Заповедник FileList ReDim (I) как шнур
        FileList (I) = f
        iий = I + 1
        f = Dir$ ()
    Петля
    
    Если FileList (0) <> опорожняет после этого
        GetFileNames = FileList
    Еще
        GetFileNames = ложно
    Закончитесь если    
Закончите функцию


Приватная подводная лодка OutputFilenames2XL ()
Тусклое iBaseRow как интежер, iBaseCol как интежер
Тусклое shTarget как рабочий лист
Затемните I как интежер

    Установите shTarget = Application.ActiveSheet
    iBaseRow = ряд («BaseCell»). Рядок
    iBaseCol = ряд («BaseCell»). Колонка

    «Заселите поля коллектора»
    shTarget.Range («ImportDate»). Значение = теперь
    shTarget.Range («FolderPath»). Значение = sFolder
    shTarget.Range («NFiles») = NFiles
    
    «Заселите колонку filename таблицы»
    Для I = 1 к NFiles
        shTarget.Cells (iBaseRow + I - 1, iBaseCol). Значение = sFilename (I)
    Затем iий

    «Положите формулу для того чтобы parse удостоверение личности трудыов в первую колонку»
    shTarget.Range (клетки (iBaseRow, iBaseCol - 1), клетки (iBaseRow + NFiles - 1, iBaseCol - 1)) .FormulaR1C1 = «=MID (r [0] c [1], LEN (r [0] c [1]) - 14.8)»
Подводная лодка конца


Приватное Sub ImportFileContent ()
Затемните I как интежер, j как интежер
Затемните shTarget как рабочий лист
Затемните iBaseRow как интежер, iBaseCol как интежер
Затемните shSource как рабочий лист
Затемните sActiveFilename как шнур
Затемните sFullPath как шнур
Затемните iRowCount как интежер
Затемните iTargetColumn как интежер
Затемните rSourceRange как ряд

    «Данные по магазина низкопробные для рабочий лист цели, котор мы строим»
    Установите shTarget = Application.ActiveSheet
    iBaseRow = ряд («BaseCell»). Рядок
    iBaseCol = ряд («BaseCell»). Колонка
    
    
    «Теперь обрабатывайте каждый filename как раз импортированный к рабочий лист»
    Application.ScreenUpdating = ложно
    Application.WindowState = xlMinimized
    Application.Calculation = xlCalculationManual
    Application.Visible = ложно
            
    «Адвокатское сословие прогресса установки»
    frmProgress нагрузки
    frmProgress.ProgressBar.Max = NFiles
    frmProgress.ProgressBar.Value = 0
    frmProgress.Show
    
    Для I = 1 к NFiles
        sActiveFilename = sFilename (I)
        sFullPath = sFolder & «\» & sActiveFilename
        
        «Размежеванный ввозом архив текста»
        Filename Workbooks.OpenText: =sFullPath, _
        Начало: =437, StartRow: =1, DataType: =xlDelimited, TextQualifier: = _
        xlDoubleQuote, ConsecutiveDelimiter: =False, плата: =True, Semicolon: =False, _
        Запятой: =False, космос: =False, другое: =False, FieldInfo: =Array (1, 1), _
        TrailingMinusNumbers: =True
        
        «Храньте имя листа и форма/добавляет необходима формулы»
        Установите shSource = Application.ActiveSheet
        iRowCount = Application.WorksheetFunction.CountA (колонки («a: »))
        shSource.Range (клетки (1, 2), клетки (iRowCount, 2)) .FormulaR1C1 = «=FIND ("": "", R [0] C [- 1])»
        shSource.Range (клетки (1, 3), клетки (iRowCount, 3)) .FormulaR1C1 = «ОЕ =IF ((r [0] c [- 2], "" комментария "" 7)=, 61, ЗНАЧЕНИЕ (СРЕДНЕЕ (r [0] c [- 2], 2, r [0] c [- 1] - 2)))»
        shSource.Range (клетки (1, 4), клетки (iRowCount, 4)) .FormulaR1C1 = «=RIGHT (r [0] c [- 3], LEN (r [0] c [- 3]) - r [0] c [- 2] - 1)»

        «Сделайте конечно клетки будьте обновлен при в настоящее время только необходимо данные (если вычисление установлено к руководству)», то
        shSource.Calculate
        
        «Теперь скопируйте приводя к parsed данные в правильно клетки на рабочий лист цели»
        Для j = 1 к iRowCount
            iTargetColumn = CInt (shSource.Cells (j, 3).Value)
            Установите rSourceRange = shSource.Cells (j, 4)
            shTarget.Cells (iBaseRow + I - 1, iBaseCol + iTargetColumn). Значение = rSourceRange.Value
        Следующий j
        
        «Окончательно конец архив workbook источника в виду того что мы закончены с им»
        Workbooks (sActiveFilename). Близкое SaveChanges: =False
        
        frmProgress.ProgressBar.Value = I
        frmProgress.Repaint
        
    Затем iий
    
    shTarget.Columns («c: BK») .EntireColumn.AutoFit
    
    frmProgress.Hide
    Application.Calculation = xlCalculationAutomatic
    Application.Calculate
    Application.ScreenUpdating = True
    Application.WindowState = xlMaximized
    Application.Visible = True
Подводная лодка конца
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us