Сzsh
:
autoload zmv # best in ~/.zshrc
zmv -n '([^#]#)(\#*)(.*)' '$1${(j: :)${(os: :)2}}$3'
(удалить-n
(сухой -сухой ход )если устраивает ).
[^#]#
:0 или более не -#символов(#
похоже на *
в регулярных выражениях)s: :
разделить на пробел o
:порядок (сортировка)j: :
:соединиться с пробелом. Итак, мы разделяем часть между первым#
(включенным )и последним.
(исключенным )по пробелу, сортируем полученный список, который соединяем обратно пробелом.
Рекурсивно:
zmv -n '(**/)([^#]#)(\#*)(.*)' '$1$2${(j: :)${(os: :)3}}$4'
Чтобы разрешить пробелы в именах тегов, мы могли бы разделить по #
и обрезать конечные пробелы, отсортировать и объединить по #
с помощью:
zmv -n '([^#]#\#)(*)(.*)' '$1${(j: #:)${(os:#:)2}%% #}$3'
Добавьте квалификатор (#qD)
glob, если вы также хотите обрабатывать скрытые файлы(D
или файлы )или хотите обрабатывать файлы в скрытых каталогах.
для списка устройств аудиозахвата ALSA
arecord -l
для источника захвата Pulseaudio
pactl list sources