Вопрос по bash

Вот решил (не имея никаких знаний по shell) написать скрип,преобразующий мою апе музыку во флак.
Имееться 2 вопроса.
1) Если просто искать апе файлы, то все отображаеться нормально. Если же значение поиска обозначить как переменную, то все имена содержащие проблеы, отображаються как каждое слово на отдельной строчке.
for x in $( find ~/media/music -name '*.ape' ) ; do
echo $x
done

media/music/The
Doors/1967
The
Doors/CDImage.ape
media/music/The
Doors/1969
The
Soft
Parade/CDImage.ape

Что с этим можно сделать?(в книжке не нашел))
2) Я так и не нашел декомперссорадля аре.Хотя я слышал про MAC, но нигде его не нашел.
Поэтому пользуюсь ( пытаюсь)) родным(MAC.exe),запушенным под вайном.Или он не понимает пути ,или я дурак)
Причем гуишная версия под вайном пашет.
пробовал и так (корень в вайне обознаен Z:)
wine /home/petrun/media/Monkey\'s\ Audio/MAC.exe -d Z:/home/petrun/Track01.ape
и так
wine /home/petrun/media/Monkey\'s\ Audio/MAC.exe -d /home/petrun/Track01.ape
Заранее спасибо за советы)

find ~/media/music -name

find ~/media/music -name *.ape -exec твоя_команда_перекодировки {} \;

man find
man sox

так можно

так можно попробовать


#!/bin/sh
#временный файл
tmpfile="/home/user/1.txt"
#Где искать
find_path="/home/user/"
find ${find_path} -name '*.ape' > ${tmpfile}
#cat ${tmpfile}
kolvo="`cat ${tmpfile} | wc -l`"
n1="1"
while [ ${n1} -le ${kolvo} ]
do
s="`cat ${tmpfile} | sed -n "${n1}p"`"
echo ${s}
n1="`expr ${n1} + 1`";
done
rm ${tmpfile}

может кто знает способ лучше получить файл по строкам на sh'еле

получить файл по строкам


#!/bin/bash
# IFS разделитель полей
IFS='
'
TEXT=$(cat 'test.txt')
CNT=1;
for I in $TEXT ;do
echo $CNT $I
CNT=$(($CNT + 1))
done

_________________________________________
2B |! 2B

имена содержащие проблы

по поводу первого проще сделать так
find ~/media/music -iname '*.ape' -exec echo {} \; ;

______________________________________
2B |! 2B

Выдать пути в

Выдать пути в строку получилось,но выяснилось,что флак тоже не понимает имена с пробелами)
Может кто-нибудь посоветовать скрпит убирающий пробелы в названии в каталогах и ее подкатологах?

ftp://seclorum.msk.ru/etc/gen

ftp://seclorum.msk.ru/etc/gentoo/portage/portage_overlay_my/media-libs/mac/ - это ebuild для mac

скрипт для конвертации связки ape\cue в потрековый вариант во flac. Названия песен берутся из cue

#!/bin/bash 
#=============================================================================== 
# 
#          FILE:  cue2flac 
#  
#         USAGE:  cue2flac ./file.cue 
#  
#   DESCRIPTION:  Split one flac-file to many with using cue-file 
#  
#       OPTIONS:  --- 
#  REQUIREMENTS:  --- 
#          BUGS:  --- 
#         NOTES:  --- 
#        AUTHOR:  Kasim Patillaev  (seclorum@seclorum.ru),  
#       COMPANY:  http://seclorum.ru 
#       VERSION:  0.1 
#       CREATED:  04/14/2007 09:11:38 PM MSD 
#      REVISION:  0.1 
#=============================================================================== 

if [ $# -eq "0" ]  # Script invoked with no command-line args? 
then 
    exit 
fi 

CUE_FILE=$1 
BASE_NAME=`echo "${CUE_FILE}" | sed 's/....$//'` 
IMAGE_FILE=`grep -m 1 FILE "${CUE_FILE}" | sed -r 's/(.?*)\"(.?*)\"(.?*)/\2/g'` 

if [[ ! -e "${IMAGE_FILE}" ]] 
    then 
        IMAGE_FILE=`ls "${BASE_NAME}".* | grep "ape$\|flac$\|wv$\|wav$"` 
fi 

if [[ ! -e "${IMAGE_FILE}" ]] 
    then 
        exit 
fi 
cp  "${CUE_FILE}" "${CUE_FILE}".ori 
cat "${CUE_FILE}" | enconv -L ru -x UTF-8 > "${CUE_FILE}.bak" 
mv "${CUE_FILE}".bak "${CUE_FILE}" 

ALBUM_ARTIST=`cueprint -d %P "${CUE_FILE}"` 
ALBUM_ALBUM=`cueprint -d %T "${CUE_FILE}"` 
ALBUM_GENRE=`cueprint -d %G "${CUE_FILE}"` 
ALBUM_TRACKS=`cueprint -d %N "${CUE_FILE}"` 
ALBUM_DATE=`grep -m 1 DATE "${CUE_FILE}" | sed -r -e 's/(.?*)REM\ DATE\ //g'` 
[ -n "${ALBUM_DATE}" ] || ALBUM_DATE=0000 

tagging_flac() { 
    TRACK_TITLE=`cueprint -n $num -t %t "${CUE_FILE}"` 
    TRACK_PERFORMER=`cueprint -n $num -t %p "${CUE_FILE}"` 
    TRACK_GENRE=`cueprint -n $num -t %g "${CUE_FILE}"` 
    metaflac \ 
            --set-tag="TITLE=${TRACK_TITLE}" \ 
            --set-tag="ALBUM=${ALBUM_ALBUM}" \ 
            --set-tag="ARTIST=${TRACK_PERFORMER}" \ 
            --set-tag="DATE=${ALBUM_DATE}" \ 
            --set-tag="TRACKNUMBER=${num}" \ 
            --set-tag="GENRE=${TRACK_GENRE}" \ 
            --set-tag="COMMENT=${ALBUM_ALBUM}" \ 
    "./split-track$num.flac" &>/dev/null 
} 

((COUNTER=0)) 
cuebreakpoints "${CUE_FILE}" | shntool split -o flac "${IMAGE_FILE}" 

DIR_READY="$ALBUM_ARTIST - (${ALBUM_DATE}) $ALBUM_ALBUM [flac]" 
mkdir -p "$DIR_READY/Covers" 

cat "${CUE_FILE}" | grep TITLE | sed 's/.*TITLE//g' | sed 's/"//g'| while read rr; 
     
    do 
    num=`echo 0$COUNTER | grep -o ..$` 
        tagging_flac 
        mv ./split-track$num.flac "./$DIR_READY/$num `echo $rr | sed 's/.$//'`.flac" 
        ((COUNTER++)) 
    done 

cp *.log "$DIR_READY"/Covers 

Критика по поводу скрипта не принимается. Это не окончательная версия. Действующей сейчас нет под рукой.

P.S. также понадобятся:
media-sound/shntool
app-cdr/cuetools

Monkey's Audio Image convert

Загляни на
http://aidanjm.wordpress.com/2007/01/26/using-monkeys-audio-ape-files-in-ubuntu/
Там в примерах и со ссылками.

Костыли это

Костыли это всё, Monkey's Audio довольно давно открыт, не понимаю, почему он так слабо поддерживается под *nix, формат-то вполне распространённый... )-:E

Могу

Могу предложить "Дэвид Тейнсли - Linux и Unix. Программирование в SHELL.djvu"
Мне в своё время сильно помогла.

если можно

если можно вышли пожалуйста на mess0509(собака)gmail.com

Пробелы в именах

~$cat do.sh
#!/bin/bash
cp -v "$1" tmp/
~$
~$find /mnt/tmp -name '*\ *' -and -type f -print0|xargs -0 -n 1 ./do.sh

Эта строка запускает do.sh, передавая ему по одному имена файлов.
Критерий поиска - по вкусу, основным в конструкции является -print0.

Удачи.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".