LINUX.ORG.RU

Подскажите regexp для grep

 , ,


0

1

Теряюсь в regexp...нужно из очень большого файла (миллионы строк, загнать в OO Calc не могу целиком) найти все что содержать числа подходящие под шаблон 85XX (ну и еще десяток подобных, где печальная часть 1-3 числа известны, а оставшаяся 3-1 числа может быть любой). Наверняка это элементарно, подскажите кто знаечт.

★★★

Ответ на: комментарий от iljuase
#!/usr/bin/python3
import csv
import re

csv_file = open("./1.csv", 'r')

csv_reader = csv.reader(csv_file, delimiter = ";")

sum = 0

for line in csv_reader:
    if re.match("85[0-9]*", line[2]):
        sum += int(line[2])

print(sum)

Как пример.

iljuase ★★★
()
Последнее исправление: iljuase (всего исправлений: 1)
Ответ на: комментарий от iljuase

Подтверждаю - решал подобную задачу, поделюсь опытом. Дано: файл csv, 800 мегабайт, надо его слегка подраспарсить было. Напарник, очень шарящий в венде задействовал Powershell. Результат - текущий как сучка скрипт съел 24 гигабайта(!) RAM и пердолил файл где-то час. Все наши попытки оптимизации этого говнища(с привлечением гугла и stack overflow) особым успехом не увенчались(называть успехом снижение потребления памяти с 24 гигов до 6 язык не поворачивается). Хотелось принципиально решить Powershell-ом, но в одни прекрасный момент я плюнул и за пару минут налабал минимальный прототип на питоне(без всякой оптимизации, тупо import csv и поехали). Результат - 10 минут пердолинга, среднее потребление памяти - 5 мегабайт. Мегабайт, КАРЛ!

В общем с тех пор у меня к Powershell еще более «не очень» отношение. Началось это не очень еще «раньше» - с того момента, когда я понял что эта срань стартует где-то 5-10 секунд в среднем(SSD, если чо, так что господа кричащим «ко-ко-ко, выкинь свой жесткий диск», просьба - не беспокоить).

То есть на замену того же cmd.exe когда надо что-то быстро открыть, выполнить и закрыть оно опять таки подходит мягко говоря не очень.

Короче я - видимо не целевая аудитория Powershell :-)

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Хотелось принципиально решить Powershell-ом, но в одни прекрасный момент я плюнул и за пару минут налабал минимальный прототип на питоне(без всякой оптимизации, тупо import csv и поехали). Результат - 10 минут пердолинга, среднее потребление памяти - 5 мегабайт.

На той же системе при всех прочих равных?

x22
()
Ответ на: комментарий от Pinkbyte

… Powershell … скрипт съел 24 гигабайта(!) RAM и пердолил файл где-то час. Все наши попытки оптимизации этого говнища(с привлечением гугла и stack overflow) особым успехом не увенчались(называть успехом снижение потребления памяти с 24 гигов до 6 язык не поворачивается).

Powershell, похоже, буферизует ввод как не в себя.

x22
()