LINUX.ORG.RU

emacs. dired. regexp. Перемещение фрагмента строки

 ,


1

2

Возможно ли посредством регулярного выражения переместить маркерованный определёнными символами фрагмент строки в определённое место?
Дано:
Список директорий, например музыкальные альбомы, в названии которых имеется некая информация, помещённая в скобки.

название альбома 1 (год альбома) [сирийный номер]
название альбома 2 (год альбома) [сирийный номер]
название альбома 3 (год альбома) [сирийный номер]
название альбома 4 (год альбома) [сирийный номер] 
etc.
Задача в том, что бы переместить информацию в скобках в начало строки и добавить дефис. При условии, что сирийный номер иногда отсутствует, а название альбома может содержать различное количество слов.
В итоге должно получиться так:
год альбома - название альбома 1 [сирийный номер]

Возможно ли посредством регулярного выражения переместить маркерованный определёнными символами фрагмент строки в определённое место?

Да. Но это *не* значит, что так и надо делать.

Zmicier ★★★★★ ()

Я бы такое делал с помощью multiple cursors.

feofan ★★★★★ ()

Возможно ли посредством регулярного выражения переместить маркерованный определёнными символами фрагмент строки в определённое место?

Не понял, при чём тут dired? Тебе нужно файлы переименовать, или ты спрашиваешь возможно ли так сделать с помощью регулярок в принципе? Да возможно, и да dired при копировании/переименовании использует регулярки по-умолчанию.

no-such-file ★★★★★ ()
Ответ на: комментарий от Nicholass

Так а как с помощью мультикурсоров то делать, ежели они синхронно будут двигаться либо с начала либо с конца строки, а в обоих случаях колличество слов варьируется?

Dreamdrawer ()
Ответ на: комментарий от feofan

Аааахтыж! Гениально! ))
Спасибо большое!
Одна голова хорошо, а коллективный разум делает из Emacs воистину всемогущий инструмент!

Dreamdrawer ()
Ответ на: комментарий от no-such-file

Не понял, при чём тут dired?

wdired имеется в виду.

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

Оно примерно идентично, только мультикурсоры нагляднее.

feofan ★★★★★ ()

Query replace regexp: \(.*\) (\(.*\)) \(\[.*\]\) with: \2 - \1 \3

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

Потому что это не единственная и не самая удобная возможность.

Zmicier ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.