EmEditor удаление строк по параметрам
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Программное обеспечение

#1: EmEditor удаление строк по параметрам Author: ArrowSoft PostPosted: Tue Jul 28, 2015 22:04
    —
Добрый привет!
Подскажите пожалуйста как удалить строки содержащие более 16 символов и менее 16 символов, в txt через EmEditor.
Crying or Very sad

#2:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Jul 28, 2015 22:21
    —
ArrowSoft
Видимо, макрос надо писать. Я тут пас, но на форуме есть более продвинутые специалисты. (Например, CaptainFlint, но он сейчас должен быть в отъезде.) И версию используемого EE надо в любом случае указать.

#3:  Author: ArrowSoft PostPosted: Tue Jul 28, 2015 22:41
    —
Avada
я подумал можно через регулярное выражение, но не знаю как ими пользоваться тут. Спасибо за ответ Smile
Версия 15.1.7


Last edited by ArrowSoft on Tue Jul 28, 2015 22:42; edited 1 time in total

#4:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Jul 28, 2015 22:41
    —
Можно заменой с регулярным выражением.
Для удаления строк короче 16 символов заменить выражение (^|\n).{0,16}\n\n? на \1.
Для удаления строк длиннее 16 символов заменить чуть модифицированное выражение (^|\n).{16,}\n\n? на \1.

#5:  Author: ArrowSoft PostPosted: Tue Jul 28, 2015 22:51
    —
MVV
Спасибо! Помогло! Rolling Eyes
Но работает очень медленно, думал будет быстро.
Все так через Terminal мне будет проще удалить =)

#6:  Author: FlasherLocation: Москва PostPosted: Tue Jul 28, 2015 23:08
    —
ArrowSoft
На скорость влияют разные факторы. Например, размер файла, рабочие процессы, загрузка памяти, процессор.
Вот "быстро" - это сколько?

#7:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Jul 28, 2015 23:21
    —
Насколько я понимаю, в EmEditor загруженные в память файлы хранятся как массивы строк, поэтому операции по удалению или добавлению строк в многострочном файле медленны - видимо, из-за частого перестроения этого массива строк.

#8:  Author: FlasherLocation: Москва PostPosted: Wed Jul 29, 2015 00:25
    —
Есть ещё один способ. Закрепляем режим блочного выделения. Держим на первой строке после 16 символа Shift и жмём PgDn пока сепаратор не достинет конца рабочей области, потом отпускаем PgDn и нажимаем HOME или END (+ необх. число раз Вправо) в зависимости от того, с какой стороны удаляем, а после отпускаем Shift и жмём Del, соответственно.

Last edited by Flasher on Wed Jul 29, 2015 00:35; edited 1 time in total

#9:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Jul 29, 2015 00:32
    —
Flasher,
Длинные строки же так просто укоротятся, но не удалятся целиком, или?

#10:  Author: FlasherLocation: Москва PostPosted: Wed Jul 29, 2015 00:35
    —
MVV
Блин, точно, я вообще о другом подумал... Вычёркиваю...

#11:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Jul 29, 2015 09:23
    —
ArrowSoft
Что какие-то рекомендации помогли — замечательно, но правила форума попрошу соблюдать. Полное цитирование предыдущего поста — моветон. В таких случаях достаточно ника того, кому отвечают (вставляется кликом из левой части соответствующего поста). Ненужные цитаты удалены.

#12:  Author: umka PostPosted: Sat Jan 21, 2017 16:48
    —
MVV
Quote:
Для удаления строк длиннее 16 символов заменить чуть модифицированное выражение (^|\n).{16,}\n\n? на \1.


Меня терзают смутные сомнения.

Что если текст будет такой:

Code:
Чт
о
ка
ки
е-т
о р
ек
ом
ен
да
ци


Это регулярное выражение найдет первые любых . 16 символов (включая символы перевода строки, любые ведь), то есть:

Code:
Чт
о
ка
ки
е-т
о р
ек


и заменит их на символ перевода строки или начала строки.
Хотя эти строки заведомо короче 16-ти символов.

#13:  Author: FlasherLocation: Москва PostPosted: Sat Jan 21, 2017 16:59
    —
umka
Ничего подобного. Это в первом примере {0,16} даёт до 16 символов, а во втором {16,} даёт 16+, но по ТЗ тут 17 нужно писать.

#14:  Author: Alextp PostPosted: Sat Jan 21, 2017 17:25
    —
Офтоп-- в CudaText есть плагин Filter Lines:
вводим там регэкс ^.{17,}$
и он найдет строки больше 16.
И наоборот можно- ^.{,16}$

#15:  Author: umka PostPosted: Sat Jan 21, 2017 22:08
    —
Flasher
разве символы перевода строки не считаются за символы?



Total Commander -> Программное обеспечение


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group