Форум программистов, компьютерный форум, киберфорум
Софт: Текстовые редакторы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/40: Рейтинг темы: голосов - 40, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 13

Как заставить Notepad++ работать быстрее?

18.05.2020, 02:47. Показов 9112. Ответов 31

Студворк — интернет-сервис помощи студентам
Всем Привет,

Использую Notepad++ для большого количества txt файлов, т.е. за раз около 100 файлов каждый примерно 50-150mb, в каждом файле 1,5-5 млн строк.
Каждый файл состоит из похожих 3 строк:
Pattern: 1
Address: PBAesScHhcoRDV6iasyJ5yzXxs9P8zsL3
Privkey: Rjn8S7o7mykp9yUtLi8Y7kgHXSDFpywEXUEcKq7v RxL9mdWTn
редактирование заключается в удалении "Pattern: 1", "Address: ", "Privkey: "
в самом редакторе в поиске "Найти в файлах" удаляю сразу во всех файлах, то что выше в кавычках, то есть просто замена на пустое поле(не пробел) во всех файлах.

Проблема в том что это происходит медленно, процессор загружен всего на 8-15% и ссд 2-20mb в секунду, в диспетчере и в Aida64 видно что отработка идёт на одном ядре процессора, остальные простаивают, из-за этого много времени занимает удаление не нужных слов из всех файлов.

Пробовал другие редакторы(SkimEdit, Textex и несколько других), они не умеют сразу всю папку с кучей файлов редактировать.

как сделать так, чтобы Notepad++ использовал все имеющиеся вычислительные ресурсы?
как заставить его работать быстрее?
Может есть другой редактор в котором можно сразу 100 файлов редактировать?

Ещё вопрос, как удалить всю строку "Pattern: 1", что нужно в поле "Заменить на:" прописать?

Версия Notepad++ 7.8.6 64 bit

моё железо:
Процессор xeon 3680 6 ядер 3,46Ghz
ОЗУ 12 gb(трёхканал)
ssd 240 gb
Win 7 Pro 64

Добавлено через 1 минуту
Может у кого-то есть мысли, как можно весь процесс автоматизировать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.05.2020, 02:47
Ответы с готовыми решениями:

Как заставить функцию работать быстрее?
Может кто подсказать в плане оптимизации как заставить функцию Check() работать быстрее? Применил StringBilder вместо string, код стал...

[Статья] Как заставить Вашу программу на VB работать быстрее?
Автор: Рут Глушкин, VBStreets Прежде всего заставьте программу работать, а затем беспокойтесь о ее быстродействии. Существует...

Оцените, будьте так любезны! Как заставить игры работать чуточку быстрее на таком компьютере?
---------------------------------- 01 - Операционная система ---------------------------------- 0101 - Операционная система :...

31
Эксперт .NET
 Аватар для Rius
13406 / 7859 / 1701
Регистрация: 25.05.2015
Сообщений: 23,872
Записей в блоге: 14
23.05.2020, 20:26
Студворк — интернет-сервис помощи студентам
MarKaPolo, можно ещё вот такой вариант:
PowerShell
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
$files = Get-ChildItem -Path .\ -Filter 13*.txt -Recurse -File -Name 
 
$time1 = Get-Date
 
function Clean-Line {
    [CmdLetBinding()]
    param (
        [Parameter(ValueFromPipeline)]
        [string[]] $lines
    )
    process {
        foreach ($line in $lines) {
            if ($line.Contains("Pattern: 1")) {
                continue;
            }
 
            $line -replace 'Address: ', '' -replace 'Privkey: ', ''
        }
    }
}
 
foreach ($file in $files) {
  $newfile = [System.IO.Path]::ChangeExtension($file, ".new");
  Get-Content $file -ReadCount 20000 `
    | Clean-Line `
    | Set-Content $newfile
  #Remove-Item $file
  #Move-Item $newFile $file
}
 
$time2 = Get-Date
$span = $time2 - $time1;
[console]::WriteLine("The lapsed time is: {0:c}", $span)
6 мелких файлов за 10 секунд. Один 200МБ файл за 58 секунд. Медленнее, но не намного. Ещё оптимизировать что-то смысла не вижу, выигрыш незначителен.

Если у вас заранее был установлен PowerShell, как у любого уважающего себя виндового сисадмина, то вообще ничего скачивать не надо.
1
Нарушитель
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,030
23.05.2020, 23:15
Цитата Сообщение от Rius Посмотреть сообщение
Если у вас заранее был установлен PowerShell, как у любого уважающего себя виндового сисадмина
Уважающий себя админ - это ленивый админ, исповедующий корневое правило: работает - не трогай.
Минимальным виндусом, почти отвечающим этому правилу, является версия 7, powershell в ней из коробки.
Почти - это потому что powershell там версии 2.
Но версия 2 на текущий момент признана microsoft полностью устаревшей и не поддерживаемой.
Поэтому какие-то телодвижения всё равно необходимы.
Либо обновить до версии powershell for windows 5.1
Либо установить версию powershell core, которая на текущий момент имеет номер версии 7.0.

Если совсем скучно( самоизоляция, то, сё ), то можно установить и 5.1 и 7.0; они не перемешиваются.

Поскольку ТС публично признался, что имеет Windows 7, обсуждать особенности инструментальной оснастки windows 10 не буду.
0
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 13
24.05.2020, 11:36  [ТС]
Rius,
Bash
1
2
3
4
5
@echo off
for %%f in (*.txt) do (
    echo %%f
    sed.exe -i -E '/^5/d'
)
или
Bash
1
sed -i -E '/^5/d' *.txt
при данном коде у меня в появляется вот такое сообщение
sed.exe: -e expression #1, char 1: unknown command: `''
я смотрел на разных ресурсах, везде именно так как вы написали, я менял по разному батник, не выходит у меня никак аленький цветочек!)
что я делаю не так?
0
Эксперт .NET
 Аватар для Rius
13406 / 7859 / 1701
Регистрация: 25.05.2015
Сообщений: 23,872
Записей в блоге: 14
24.05.2020, 11:40
Цитата Сообщение от Rius Посмотреть сообщение
Батник только надо будет немного поправить под это дело:
    sed-4.7-64bit.exe -i -E "..... <<<<<<<<<<<<<<<
Двойные кавычки.
1
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 13
25.05.2020, 03:35  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Двойные кавычки.
поправил батник, всё заработало, по скорости с notepad++, небо и земля.

посмотрел по grep инфу, накидал вот такой батник:
Bash
1
2
3
4
5
6
7
@echo off
for %%f in (*.txt) do (
    echo %%f
 
C:\Program_Files_(x86)\GnuWin32\bin\grep.exe --file=J:\2\10.txt * -w(точное совпадение) -H(печатать имя 
 
файла для каждого совпадения) "%%f"
в скобках просто пояснение что я хотел этим добиться, естественно в самом батнике этого нет.
и так пробовал
Bash
1
2
3
4
5
6
@echo off
for %%f in (*.txt) do (
    echo %%f
 
grep -w -H --file=J:\2\10.txt "%%f"
)
J:\2\10.txt это список слов которые нужно найти
ну как обычно, аленький цветочек не вышел!
Прошу помощи, подскажите где косяк в коде?
0
Эксперт .NET
 Аватар для Rius
13406 / 7859 / 1701
Регистрация: 25.05.2015
Сообщений: 23,872
Записей в блоге: 14
25.05.2020, 06:03
Bash
1
grep  -n -w --file=words.list *.txt
Обратите внимание, что кодировка текста в файле паттернов и в проверяемых должна совпадать.
1
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 13
26.05.2020, 03:30  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
BashВыделить код
1
grep  -n -w --file=words.list *.txt
Bash
1
grep  -n -w --file=J:\2\10.txt *.txt
в таком виде почему-то не работает, консоль закрывается так быстро, что не успеваю прочесть причину.

попробовал вот так
Bash
1
2
3
4
5
6
@echo off
for %%f in (*.txt) do (
    echo %%f
 
grep  -n -w --file=J:\2\10.txt "%%f" >> mac.txt
)
работает, но есть проблема, поиск осуществляется только в текущей папке, без вложенных, пробовал добавлять куда возможно -r или -R, но безрезультатно, поиск идёт только в текущей папке. Пробовал так
Bash
1
2
3
4
5
6
@echo off
for %%f in (*.txt) do (
    echo %%f
 
grep  -Rnw --file=J:\2\10.txt "%%f" >> mac.txt
)
ничего!
вообще не работает, консоль на мгновение открывается и сразу закрывается.
На всех сайтах на которых описываются примеры использования grep, "-R" добавляется так: grep -R, а у меня не работает!) почему?где я косячу с кодом?
0
Эксперт .NET
 Аватар для Rius
13406 / 7859 / 1701
Регистрация: 25.05.2015
Сообщений: 23,872
Записей в блоге: 14
26.05.2020, 06:22
MarKaPolo,
Файлы:
Bash
1
2
3
4
5
6
λ ls -R .                   
.:
1.txt  2/  2.txt  words.list
 
./2:
3.txt
Поиск:
Bash
1
2
3
4
λ grep -n -w -r --file=words.list --include=*.txt
1.txt:1:123
2/3.txt:1:123
2.txt:1:123
Цитата Сообщение от MarKaPolo Посмотреть сообщение
консоль закрывается так быстро, что не успеваю прочесть причину
Так надо запустить консоль, а из неё команду. Очевидно же.
1
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 13
31.05.2020, 23:34  [ТС]
Хочу установить линукс и запустить в нем используя рамдиск(tmpfs)
это можно ведь в любом дистрибутиве? пока смотрю в сторону Минт или Manjaro xfce, может есть

Под это дело собираюсь новый комп собрать на китайской материнке с двумя процами xeon 2678v3. Оперативки 64 или 128 поставить. винт наверно обычный сата, потому что ведь всё всё будет обрабатываться в tmpfs, т.е. сначала загружаться с винта в tmpfs, правильно? обратно выгружать ничего не нужно, только результат поиска который пару килобайт занимает.

будет ли например Минт использовать все ресурсы в 24 ядра и 48 потоков процессоров при работе grep? нет ли каких-то заморочек в этом плане c grep или с Минт?

и последний вопрос, будет ли Минт работать так же если запускать не с флешки, а в виртуалке VMware? наверно лучше с флешки, т.к. винда и виртуалка подъедят немного ядер и ресурсов компа?
0
Нарушитель
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,030
01.06.2020, 01:29
Цитата Сообщение от MarKaPolo Посмотреть сообщение
Под это дело собираюсь новый комп собрать на китайской материнке
под какое дело? под запуск утилиты sed ? )
0
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 13
01.06.2020, 02:15  [ТС]
Цитата Сообщение от volodin661 Посмотреть сообщение
под какое дело? под запуск утилиты sed ? )
нет, sed на моем 6 ядернике работает нормально, скорость меня устраивает,
нужен grep, проблема в том что я его запускаю в консоли винды, и файл со списком искомых слов состоит из примерно 2млн слов, это не слова а адреса вот такие "PBAesScHhcoRDV6iasyJ5yzXxs9P8z".
а количество адресов в которых ищется совпадение более 100млн в день!
если я сейчас на своем железе запущу поиск 2 млн внутри 100млн, то такой поиск займет наверно неделю-две!(
при поиске загрузка 6 ядер моего процессора от 7 до 20 % скачет, гипертрейдинг включен, но работают только сами ядра процессора.
поэтому и хочу установить минт и рамдиск, может тогда увеличится скорость и загрузка процессора и потоков.

Добавлено через 6 минут
линукс сможет задействовать 24 ядра и 48 потоков на всю?
я в любом случае буду брать такую машину, просто спрашиваю есть ли в лине какие-то ограничение на количество ядер/потоков, процессоров будет 2. Может под двухпроцессорную систему с 24 ядрами нужен не Минт а другой спец. для таких систем дистрибутив?
Чтобы пока комплектуха с али не приедет, начать разбираться в этом вопросе.
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,815
20.06.2020, 14:11
Цитата Сообщение от FlasherX Посмотреть сообщение
автор nhrt в конце прошлого года обещал ускорить утилиту, но пока тихо.
Обновил-таки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2020, 14:11

Можно ли заставить ЖД работать быстрее?
Подключил я внешний хард ко второму пню, чтобы перегнать туда инфу с компа, но появилась надпись типа винт работает медленно. Перетыкнул на...

Как заставить сайт написанный на 5.3 заставить работать на 5.6? Как принудительно включить register_globals?
Есть древний сайт. Работает на php 5.3. Как объяснил разработчик данного сайта - все дело в register_globals, надо принудительно включить...

Как заставить точку двигаться плавно и быстрее?
Наверно это очень нелепый и глупый вопрос, но всё-же рискну задать. В QBasic можно сделать так, что-бы точка двигалась, и при нажатии на...

Как будет быстрее работать с переменной $content?
Здравствуйте! Попробовал искать через поиск, но он упорно не работает. У меня такой вопрос: Вот, к примеру, я определяю...

Как почистить компьютер, чтобы он стал работать чуть быстрее?
Здравствуйте. Как можно почистить компьютер, чтобы он стал работать чуть быстрее, есть хорошие программы? Просто иногда ПК долго думает,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru