LINUX.ORG.RU

[bash]запуск и логирование рандомно созданых файлов

 


0

1

Всем доброго дня! Есть скрипт который генерирует много файлов с именами «sound_*sr*_*bt*.wav», где sr - значение частоты, а bt - битрейт. Вопрос - мне нужно каждый файл запустить отдельной утилитой и снять с него лог. То есть я беру допустим файл sound_44100_320.wav и обрабатываю его. В логе же мне должно указать его имя и дальше результат обработке (как это делать я знаю). Как мне задействовать рандомные файлы? Благодарю за внимание.



Последнее исправление: arthur_s (всего исправлений: 1)
Ответ на: комментарий от AITap

не знаю что это.

в общем программа моя, допустим в скрипте будет выглядеть так:

./editing /home/mydirectory/music/sound_44100_320.wav

# Программа отдельно создает лог с которого я вытягиваю значения для моего лога, но чтоб мне внести эти значения я сначала должен в логе указать что используется именно этот файл, то есть лог должен быть такого вида:

sound_44100_320.wav 50.43% 53sec

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

echo -n filename >> log
command 2>&1 >> log

В _чём именно_ проблема? Вы не умеете записывать в лог имя файла? Вывод команды? Что-то ещё?

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

проблема в том что мне нужно сделать последовательность, то есть есть множество файлов такого типа: sound_48000_320.wav, sound_44100_320.wav, sound_32000_320.wav, sound_48000_256.wav. sound_44100_256.wav, sound_32000_256.wav, sound_48000_192.wav, sound_44100_192.wav, sound_32000_192.wav......sound_*x*_*y*.wav

мне нужно запустить один файл, снять с него лог, записать все в мой лог последовательно (sound_*x*_*y*.wav *z*% *q*sec) и дальше преступить к следующему файлу. Скрипт должен сам правильно находить файлы, запускать их последовательно и при этом заносить лог.

arthur_s
() автор топика
Ответ на: комментарий от arthur_s
for freq in 4800 44100 32000 ...
do
 for bitrate in 192 246 320 ...
 do
  filename="sound_$freq_$bitrate.wav"
  echo -n "$filename" >> log
  some_command >> log
 done
done

И я всё ещё не понял, что именно Вы не можете сделать.

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

мне нужно запустить один файл

Тебе не нужно запускать один файл. Тебе нужно результат.

Расскажи, какой тебе нужно результат?

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

Будет, особенно если в имени файла встретится пробел.

uzbl
()

man find на предмет опции exec. Не то?

drBatty ★★
()

всем спасибо, я в пятницу переработался и в итоге решил эту простую задачку....

for bps in «320k» «256k» «192k» «128k» «112k» «96k» «64»

do

for sp in «48000» «44100» «32000» «22050»

do

./waveditor ./music/music_${sp}_${bps}_mp3.wav

if [ -e ./music/music_${sp}_${bps}_mp3.wav ]

then

cp ./waveditor_log.txt ./log_music/music_${sp}_${bps}

fi

echo -ne «music_${sp}_${bps}\t» >> LOG_music.txt

# а дальше я grep'ом выдергиваю данные с лога

done

done

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