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

Russian main discussion
  • Author
  • Message
Offline
Posts: 8
Joined: Wed Aug 12, 2009 4:24 am

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

Post by Polly »

1. Можно ли инвертировать строку или вертикальный блок?

Ex:

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

в

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


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

Ex:


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

в

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

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

Offline
Posts: 124
Joined: Tue Jun 03, 2008 10:32 pm

Post by Xephon »

1. Например с помощью SearchReplace.js (поставить галочку "Замена на функцию")

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

2. Lines plugin

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

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

3. См. LinesFilter.js в комплекте Scripts плагина.

Offline
Posts: 8
Joined: Wed Aug 12, 2009 4:24 am

Post by Polly »

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

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

Offline
Posts: 124
Joined: Tue Jun 03, 2008 10:32 pm

Post by Xephon »

Если пытаетесь удалить строку, то поле "чем" надо оставлять пустым.
Либо, как уже написал Instructor, использовать LinesFilter.js.

Offline
Posts: 98
Joined: Thu Jul 03, 2008 7:23 pm

Post by Tony »

Третий вопрос легко решается спомощу плагина Macros.
F3 - искать далее
F8 - удалить строку на которой сейчас находится курсор
Если непонятно, могу поподробнее объяснить.

Offline
Posts: 267
Joined: Mon Mar 12, 2007 3:45 pm

Post 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.

Offline
Posts: 124
Joined: Tue Jun 03, 2008 10:32 pm

Post by Xephon »

[Yustas.NeO]
Выделяем столбец через Alt и вызываем Lines::SortStrAsc. Получаем то, что требуется.

Offline
Posts: 267
Joined: Mon Mar 12, 2007 3:45 pm

Post 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

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

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

Offline
Posts: 267
Joined: Mon Mar 12, 2007 3:45 pm

Post by [Yustas.NeO] »

Предыдущим примером я хотел показать, что первые символы "столбца", по которому надо сортировать текст, не всегда располагаются друг под другом достаточно удобно для выделения с помощью Alt'а.
Но, если в вышеозначенном примере столбцы разделяются пробелами, а не табуляцией,
Именно!
Да и даже, если табуляцией... Даже если поставить размер табуляции равной 9999, лог на пару тысяч строк замаешься выделять.
тогда это уже пожелание на расширение функционала Lines плагина.
Да-да :)
Подробности пожелания я высказал в позапрошлом посте :)

Offline
Posts: 40
Joined: Wed Mar 23, 2016 1:18 pm

Post by Dimsok »

Есть возможность объединить выделенные строки в одну?

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Dimsok
Как пример - DelLineFeed.js. Но для его работы ещё нужен selCompleteLine.js.
Можно самому написать простенький скрипт. Или написать для этого регулярку, которую использовать с помощью SearchReplace.js.

Offline
Posts: 40
Joined: Wed Mar 23, 2016 1:18 pm

Post by Dimsok »

Нашел LineUnwrap. Работу выполняет, но остается " -". Как можно дополнить этот скрипт через поиск " -" и заменой ""?

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Я выше писал про DelLineFeed.js, там эта проблема решена.
Post Reply