Найти тему
Мысли вслух

Выборка нужной информации из множества текстовых файлов

Нередко возникают ситуации, когда надо из большого количества текстовых файлов выбрать только нужную информацию, порой сделать это стандартными средствами проблематично.

В качестве примера возьмем такую ситуацию: есть некоторое количество файлов-детализаций начислений за услуги связи. Операторы связи эти детализации предоставляют, в том числе, в виде простого текстового файла формата csv (файл с разделителями). В какой-то момент времени возникает необходимость выбрать записи, где, в качестве инициатора или принимающей стороны выступает интересующий телефонный номер.

Если у Вас детализации загружаются в какую-то информационную систему, позволяющую делать интересующие выборки, то для Вас это не актуально. А если нет?

В этом случае на на помощь придет Powershell. Сейчас Powershell есть не только в Windows, но и в Linux.

Решить задачу можно, например, так:

Указываем путь до папки, где хранятся все детализации

$pt="D:\Detalizations\*.csv"

Собираем все файлы детализаций, в том числе и из вложенных папок

$f=Get-ChildItem $pt -Recurse

Выбираем все строки с нужным телефонным номером. Параметр -Encoding Default понадобится, если в детализации используются кириллические символы.

Select-String $f -Pattern "9001122333" -Encoding Default

Результат будет примерно такой:

D:\Detalizations\2018-06.CSV:7823:123456789;1;9003344555;28/06/2018;15:23:06;00:00:24;1,00;0,00;9001122333;9003344555;;Входящие;Входящий c моб.номера;Местные звонки;123456;0,00;

Это всего лишь мои мысли вслух.

Если Вам понравилась моя статья, не забудьте оценить её лайком и поделиться с друзьями в социальных сетях!

Если по содержимому данной статьи у Вас есть собственное мнение, поделитесь им в комментариях.

Возможно, Вам будут интересны другие статьи:

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц