LINUX.ORG.RU
решено ФорумTalks

По очереди выполнить команду в каждом из подкаталогов с корявыми именами

 ,


1

1

Скачал дискографию Sabaton в Lossless, в которой каждый альбом вида «большой_файл.flac»+«файл.cue». Надо пройти по каждому подкаталогу (альбомы) и там выполнить команду разбиения на отдельные флаки. Пытаюсь сделать следующее (для проверки):

user@pc:~$ cd Sabaton/
user@pc:~/Sabaton$ ls
2005 - Primo Victoria [Black Lodge, BLOD019CD, Sweden]
2005 - Primo Victoria [Re-Armed 2010, Nuclear Blast, 2642-2, USA]
2006 - Attero Dominatus [Black Lodge, BLOD037CD, Sweden]
2006 - Attero Dominatus [Re-Armed 2011, Nuclear Blast, 2643-2, Germany]
2007 - Metalizer [Black Lodge, BLOD056CD, 2CD, Sweden]
2007 - Metalizer [Re-Armed 2010, Nuclear Blast, 2644-2, USA]
2008 - The Art Of War [Black Lodge, BLOD055CDL, Sweden]
2008 - The Art Of War [Re-Armed 2010, Nuclear Blast, 2645-2, Germany]
2010 - Coat Of Arms [Nuclear Blast, 2541-0, Germany]
2011 - World War Live - Battle Of The Baltic Sea [Nuclear Blast, 2725-2, Germany]
2012 - Carolus Rex [Nuclear Blast, 2827-0, 2CD, Germany]
2012 - Carolus Rex [Nuclear Blast, 2827-2, Israel]
2012 - Carolus Rex [Nuclear Blast, 2827-5-1~2, 2CD, Germany]
2012 - Metalus Hammerus Rex [Nuclear Blast~Metal Hammer, Germany]
2013 - Swedish Empire Live [Nuclear Blast, 3160-3, Germany]
2014 - Heroes [King Rec., KICP 1697, Japan]
2014 - Heroes [Nuclear Blast, 32240, Germany]
2014 - Heroes [Nuclear Blast, 3224-1~2, 2CD, Germany]
user@pc:~/Sabaton$ for i in `ls -1`; do echo "$i"; done;
2005
-
Primo
Victoria
[Black
Lodge,
BLOD019CD,
Sweden]
2005
-
Primo
Victoria
[Re-Armed
2010,
Nuclear
Blast,
2642-2,
USA]
2006
-
Attero
Dominatus
[Black
Lodge,
BLOD037CD,
Sweden]
и так далее
То есть, каждая часть названия (разделённая пробелом) воспринимается циклом for как отдельный элемент. Как сделать так, чтобы отдельным элементом считалось полное название? Заранее спасибо

★★

Последнее исправление: Valdor (всего исправлений: 2)

ls -1 | while read i; do echo $i; done

LILO
()

find -type d -maxdepth 1 -exec command.sh {} \;

crowbar
()

Ну а разбивать с помощью shnsplit (на выходе вавки, которые надо перекодировать в нужный формат). После разбиения и кодирования скорей всего понадобится заполнить файлы тегами, это можно сделать посредством cuetag (заполняет данными из cue файла).

What_nick
()
Ответ на: Будьте проще от AITap

Спасибо. Сделал всё так:

for i in *; do cd «$i» && shntool split *.flac -f *.cue -o flac -t «%n - %t» && cd ..; done;

Позже более пристально прочту маны по find, ибо выходили странные вещи.

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

То результат, возможно, не будет соответствовать ожиданиям.
Так же как если, к примеру, сейчас начнется ядерная война.

mos ★★☆☆☆
()

Нашлось лишь два человека, знающих про каманду find чуть больше банального -print. И что удивительно, оба без звёзд. Требую выделить обоим по звезде вне очереди!

bbk123 ★★★★★
()
find ~/Sabaton -type f -iname '*.flac' -exec ... \;

[3]

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

Это встроенная-то фича оболочки костыль? tell me moar.

и да, мой вариант хорош тем, что минимально отличается от того, что уже пытался делать автор, прост в применении и удовлетворяет потребностям ТС на пресловутые 90%, хотя, в данном случае, скорее всего, на 99.9999%

твой вариант как минимум имеет минус объективной неочевидности.

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

-print0 на третью пойдет?

а если еще xargs знаю? аеслинайду!!11

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

1.) Онлайн не всегда со мной, а «хард на два тера» или «microSD на 64 в телефоне» всегда с собой.

2.) До ВК добрался копирайт. В остальных местах либо нет нужного, либо платно, либо не знаю таких мест.

3.) Олайн всё ещё сосёт у оффлайна по удобству управления коллекцией (Амарок).

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

Ой да ладно. По названию сплошные торренты гуглятся. Саита не нашёл (да и не искал).

Если уж пиарить, то с огоньком. Например «Сгорел жёсткий. То есть накрылся вообще. Всё бы ничего, но на нём был концерт $group_name_latin$ вживую. Как восстановить?»

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

Первая половина подразумевает вторую. В итоге качаешь раздачу гигов на 50, чтобы выяснить, что из 8 вариантов одного и того же альбома в раздаче часть - лишь пережатые ремастеры, а другая часть друг от друга отличается на несколько байт из-за разного сдвига при считывании исходного диска. Ну и где-то бонус-трек добавили. И так по каждому альбому.

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

Так так и делаю в итоге. И так приходится делать каждому, кто скачает (не говоря уж о том, что приходится качать кучу лишнего, ибо пока не скачаешь и не сравнишь - не можешь узнать, есть ли там на самом деле разница или нет).

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