Мне нужно извлечь 2 столбца (столбец 147 и столбец 148) из огромного файла с разделителем каналов (100 МБ-3 ГБ). Я не могу открыть в Excel или, если я делаю это занимает вечность. Как только столбцы извлечены, мне нужно вывести верхние N строк в другой текстовый файл, но мне нужно отформатировать их, чтобы они могли быть помещены в SQL, чтобы я мог запросить таблицу. Однако в двух извлеченных столбцах может быть много объединенных полей, разделенных запятыми (LOGICAL_KEY_CONCAT_FIELD_CLM, LOGICAL_KEY_CONCAT_FIELD_CLM2), и их формат может варьироваться от файла к файлу. Мне нужно, чтобы это был повторяющийся процесс.
Например, файл с разделителями трубы выглядит так:
|||…|LOGICAL_KEY_CONCAT_FIELD_CLM|LOGICAL_KEY_CONCAT_FIELD_CLM2|||||…
|||…|CLM,KEY,1|CLM,FINANCIAL,KEY,1,2018-11-30|||…
|||…|CLM,KEY,2|CLM,FINANCIAL,KEY,2,2018-11-30|||…
|||…|CLM,KEY,3|CLM,FINANCIAL,KEY,3,2018-11-30|||…
.
.
.
ВЫВОД:
(LOGICAL_KEY_CONCAT_FIELD_CLM = 'CLM,KEY,1' AND
LOGICAL_KEY_CONCAT_FIELD_CLM2 = 'CLM,FINANCIAL,KEY,1,2018-11-30')
OR (LOGICAL_KEY_CONCAT_FIELD_CLM = 'CLM,KEY,2' AND
LOGICAL_KEY_CONCAT_FIELD_CLM2 = 'CLM,FINANCIAL,KEY,2,2018-11-30')
OR (LOGICAL_KEY_CONCAT_FIELD_CLM = 'CLM,KEY,3' AND
LOGICAL_KEY_CONCAT_FIELD_CLM2 = 'CLM,FINANCIAL,KEY,3,2018-11-30')
По сути, я хочу выполнить запрос, используя данные из столбцов в файле, и хочу убедиться, что комбинация LOGICAL_KEY_CONCAT_FIELD_CLM и LOGICAL_KEY_CONCAT_FIELD_CLM2 находятся в таблице. Мне не нужно SELECT * FROM Table, ГДЕ, потому что таблица меняется в зависимости от входящего источника.
Я использую следующий код, но он не печатает столбцы в выходном файле, только заголовки:
Get-Content "\\LocationOfFile\CLAIM_20190103T17053920.txt" | select-object
LOGICAL_KEY_CONCAT_FIELD_CLM,LOGICAL_KEY_CONCAT_FIELD_CLM2 -First 10 | Out-
File "P:\PDS_QA\TestFile\Output.txt"