Page 1 of 2

Операции со строками

Posted: Fri Mar 19, 2010 2:19 am
by Polly
1. Можно ли инвертировать строку или вертикальный блок?

Ex:

11 фыва
12 ячсм
13 прол

в

11 авыф
12 мсчя
13 лорп


2. (сорри, но не могу найти в форуме) Как сделать сортировку строк?

Ex:


12 ячсм
13 лорп
11 фыва

в

11 фыва
12 ячсм
13 лорп

Ну и
3. В режиме поиска/замены мне необходимо у далить строки содержащие определённый символ. В поле "на что менять" не могу подобрать команду "Ctrl+Y"

Posted: Fri Mar 19, 2010 6:32 am
by Xephon
1. Например с помощью SearchReplace.js (поставить галочку "Замена на функцию")

что: ^(\d+ )([а-я]+)$
чем: return $1+$2.split("").reverse().join("")

2. Lines plugin

3. Не совсем понял в чем проблема. Опишите подробнее, что пытаетесь сделать.

Posted: Fri Mar 19, 2010 8:07 am
by Instructor
3. См. LinesFilter.js в комплекте Scripts плагина.

Posted: Fri Mar 19, 2010 8:22 am
by Polly
По первым двум вопросам поняла... сделала, работает. Вопрос третий - У меня в текстовом файле 10 тыс строк. надо УДАЛИТЬ из файла строки, в которых хоть 1 раз встречается цифра 8... вот так. как ещё точнее описать проблему, пока не знаю.

пытаюсь в скрипте поиска/замены подставлять в поле "чем" всякую бяку, но кроме реально отображаемых символов и 3-х ESC-последовательностей, он на меня орёт... аж обидно...

Posted: Fri Mar 19, 2010 8:46 am
by Xephon
Если пытаетесь удалить строку, то поле "чем" надо оставлять пустым.
Либо, как уже написал Instructor, использовать LinesFilter.js.

Posted: Sat Mar 20, 2010 10:49 am
by Tony
Третий вопрос легко решается спомощу плагина Macros.
F3 - искать далее
F8 - удалить строку на которой сейчас находится курсор
Если непонятно, могу поподробнее объяснить.

Posted: Mon Apr 26, 2010 12:24 pm
by [Yustas.NeO]
Эх, вот бы кто вообще сделал плагин или написал скрипт для сортировки "столбцов"... Указываешь набор символов [\t#] который будет считаться разделителем, указываешь номер столбца [2] по которому будет производиться вся сортировка, выделяешь нужные строки (или не выделяешь ничего) и:
Вместо:
q1 #q #a #z
q2 #w #s #x
q3 #e #d #c
q4 #r #f #v
Получаем:
q3 #e #d #c
q1 #q #a #z
q4 #r #f #v
q2 #w #s #x

В идеале неплохо было бы учитывать/не учитывать морфологию цифр: 9 меньше чем 10; и указывать какие столбцы сортировать: 1,2,4-7.

Posted: Mon Apr 26, 2010 1:00 pm
by Xephon
[Yustas.NeO]
Выделяем столбец через Alt и вызываем Lines::SortStrAsc. Получаем то, что требуется.

Posted: Mon Apr 26, 2010 10:01 pm
by [Yustas.NeO]
Выдели через Alt столбец с айпи-шниками ;)

2010-1-1 0:00 #95.94.1.1 #http://**********/news.php
2010-1-11 10:11 #192.168.1.100 #http://**********/about

Posted: Tue Apr 27, 2010 4:22 am
by Instructor
[Yustas.NeO]
Совет действенный. Lines плагину важно знать откуда начинается строка для сравнения, ее конец роли не играет, т.е. достаточно выделить перый символ в колонке с помощью блочного выделения и вызвать Lines::SortStrAsc (для IP больше подойдет Lines::SortIntAsc). Но, если в вышеозначенном примере столбцы разделяются пробелами, а не табуляцией, тогда это уже пожелание на расширение функционала Lines плагина.

Posted: Wed Apr 28, 2010 9:46 am
by [Yustas.NeO]
Предыдущим примером я хотел показать, что первые символы "столбца", по которому надо сортировать текст, не всегда располагаются друг под другом достаточно удобно для выделения с помощью Alt'а.
Но, если в вышеозначенном примере столбцы разделяются пробелами, а не табуляцией,
Именно!
Да и даже, если табуляцией... Даже если поставить размер табуляции равной 9999, лог на пару тысяч строк замаешься выделять.
тогда это уже пожелание на расширение функционала Lines плагина.
Да-да :)
Подробности пожелания я высказал в позапрошлом посте :)

Posted: Wed Feb 15, 2023 7:41 am
by Dimsok
Есть возможность объединить выделенные строки в одну?

Posted: Wed Feb 15, 2023 11:29 am
by VladSh
Dimsok
Как пример - DelLineFeed.js. Но для его работы ещё нужен selCompleteLine.js.
Можно самому написать простенький скрипт. Или написать для этого регулярку, которую использовать с помощью SearchReplace.js.

Posted: Thu Feb 16, 2023 9:26 am
by Dimsok
Нашел LineUnwrap. Работу выполняет, но остается " -". Как можно дополнить этот скрипт через поиск " -" и заменой ""?

Posted: Fri Feb 17, 2023 9:11 am
by VladSh
Я выше писал про DelLineFeed.js, там эта проблема решена.