У меня есть файл журнала лицензии (TEXTLINE), который содержит сведения о пользователях и отметках времени, когда они взяли или выдали лицензию. Это выглядит, как показано ниже:Log Parser 2.2 Можем ли мы объединить два оператора select для получения комбинированного вывода
Для Ex:
9:43:58 (app_d) IN: "LICENSE_APP1_NAME" A123456 @ ABCDEFG
9:44:12 (app_d) OUT: "LICENSE_APP1_NAME" A123456 @ АБВГДЕЖ
Каждые шесть часов он также входит в систему даты, как показано ниже:
9:12:41 (Lmgrd) TIMESTAMP 2/6/2015
Она также имеет сведения о журнале, когда пользователю будет отказано в лицензии, как показано ниже:
6:24:21 (app_d) ЗАПРЕЩЕН: «LICENSE_APP1_NAME» A123456 @ АБВГДЕЖ (лицензированное количество пользователей уже достигнуто. (-4342: 10054 ""))
Теперь я попытался с помощью следующей команды в Log Parser:
LogParser -i: TextLine -rtp: -1 «Выбрать текст из '[LOGFILEPATH], где текст как '% лицензированное количество пользователей уже достигло%'»
LogParser -i: TextLine -rtp: -1 "Выбрать текст из '[LOGFILEPATH]', где текст как '% TIMESTAMP%'"
Первый дает мне список всех строк, где в журнале отображается Лицензия d и второй дает мне все строки, содержащие дату. Если я использую select '*', он дает три столбца: LogFilename, Index и Text.
Я хочу объединить эти два выбора. Я попробовал «СОЮЗ», но не работал. Мой желаемый результат: мне нужно распечатать все строки, у которых есть строки, показывающие как дату, так и строку с лицензией, как показано ниже.(По индексу)
Для Ex: (Plz игнорировать пробелы линии, если таковые имеются)
9:12:41 (Lmgrd) TIMESTAMP 2/6/2015
9:25 : 32 (app_d) OUT: "LICENSE_APP1_NAME" A123456 @ АБВГДЕЖ
10:36:40 (app_d) В: "LICENSE_APP1_NAME" A123456 @ ABCDEFG
10:36:53 (app_d) OUT: "LICENSE_APP1_NAME" A123456 @ АБВГДЕЖ
12:38:13 (app_d) OUT: "LICENSE_APP1_NAME" A123456 @ ABCDEFG
12:43:58 (app_d) IN: "LICENSE_APP1_NAME" A123456 @ ABCDEFG
15:12:42 (Lmgrd) TIMESTAMP 2/6/2015
15:27:41 (app_d) OUT: "LICENSE_APP1_NAME" A123456 @ АБВГДЕЖ
16:28:30 (app_d) IN: "LICENSE_APP1_NAME" A123456 @ ABCDEFG
16:28:54 (app_d) IN: "LICENSE_APP1_NAME" A123456 @ ABCDEFG
18:29: 04 (app_d) OUT: "LICENSE_APP1_NAME" A123456 @ ABCDEFG
18:30:51 (app_d) OUT: "LICENSE_APP1_NAME" A123456 @ ABCDEFG
Было бы даже лучше, если бы я мог отображать только дату в строке даты. Можем ли мы обрезать остальную часть?
Также мое будущее требование будет содержать вывод с таблицей, в которой отображается пользовательский столбец со всеми подробностями пользователей (пример: A123456 @ ABCDEFG), столбец «сеанс» с количеством раз, когда у пользователя был сеанс (в зависимости от количества «IN» и «OUT» в журналах), столбец «Всего часов», который использует разницу во временных марках, чтобы рассчитать время, в течение которого он использовал лицензию, и столбец «Отрицания», который показывает номер от времени пользователю было отказано в лицензии из-за ошибки «Лицензионное количество пользователей, уже достигнутых». Если не весь код, могу ли я получить некоторую помощь в понимании идеи о том, как это можно сделать возможным? Заранее спасибо.
P.S. A123456 @ ABCDEFG и LICENSE_APP1_NAME приведены в качестве примера. Есть много таких пользователей и несколько других приложений, которые поддерживает файл лицензии. Более поздние требования состоят в том, чтобы выяснить, какие пользователи подключены к каждому приложению из файла лицензии.
Спасибо за ваше решение, первая часть моего вопроса была решена с помощью OR. – Pranav247
О частике токена выписки, если я добавлю токрен выделения для одной строки., То есть для даты с датой, будет ли она не применяться ко второму предложению where, поскольку я упоминаю об этом «[LOGFILEPATH]» только один раз. Я мог бы извлечь его отдельно для этой линии. Но мне нужна дата, которая будет показана отдельно, а остальные строки останутся прежними. Есть ли способ использовать два отдельных предложения where в select? Я попробовал, но я не смог создать запрос. Благодарю. – Pranav247
Удерживайте секунду, когда вы сказали, что хотите сохранить дату, вы имели в виду строки TIMESTAMP, правильно? Если это так, я допустил ошибку. Обновление ответа. –