Alexander 11.01.2010 00:42

Скрипты на bashМассовое редактирование .cue файлов

После обработки директории с lossless с помощью этого скрипта появилась необходимость в редактированиие всех cue файлов, а именно в замене расширений указанных там файлов .ape и .wav на .flac.

Делаем
1
cd ~/lossless


и запускаем скрипт
 1
2
3
4
5
6
7
8
9
10
#! /bin/bash

IFS=$IFS; IFS=$'\n'

find ./ -name '*.cue' | while read n
do
echo "$n"
sed 's/FILE "\(.*\)\.\(ape\|wav\)" WAVE/FILE "\1.flac" WAVE/;' "$n" > ./cue-aw2f
mv ./cue-aw2f "$n"
done



За за полезные дополнения спасибо albibek


Тэги: bash cue lossless script
+ 1 -
Похожие Поделиться

KblCb 11.01.2010 01:37 #
Скажите, а ваш основной язык - python?
KblCb 11.01.2010 01:47 #
Кстати скрипт с сюрпризом. Он мало того что производит замену во всём файле вместо конкретного поля (что уже чревато забавными коллизиями), так ещё и в регекспах точки не экранированы. Так что поклонников Курта Кобейна ждёт неизвестный шедевр ".flac me".
booley 11.01.2010 07:22 #
Испортил всю веселуху. :(
KblCb 11.01.2010 18:00 #
Ну прости. Разбор и обработка cue-файлов - моё больное место в последнее время.
albibek 11.01.2010 10:35 #
Чтобы этого избежать, достаточно всего лишь использовать более точный регексп в 8-й строке:
(заодно применим одну инструкцию sed вместо двух :)):
sed 's/FILE "\(.*\)\.\(ape\|wav\)" WAVE/FILE \1.flac WAVE/;' "$n" > ./cue-aw2f
albibek 11.01.2010 10:37 #
Виноват, забыл кавычечки:

sed 's/FILE "\(.*\)\.\(ape\|wav\)" WAVE/FILE "\1.flac" WAVE/;'
Alexander 11.01.2010 10:58 #
Спасибо!
KblCb 12.01.2010 19:55 #
А ещё можно попробовать заюзать -i, всё равно скрипт не умеет проверять корректность вносимых изменений, так что атомарность довольно вшивая.
Nivelir 11.01.2010 21:04 #
Разве нарезать целый альбом в отдельные композиции не удобнее?
Ваше мнение?
booley 11.01.2010 22:20 #
Спорно.
Все равно, что ложить в бутерброде с колбасой и сыром, сыр выше или ниже колбасы.
It is your choice.
booley 11.01.2010 22:20 #
Хотя да, нарезаю :)