- sox stat, михалыч, 14:14 , 17-Окт-13 (1)
> Задача выщипнуть значение "1.768463" из строки "Maximum delta" > Вариант добавить в конце | grep 'Maximum delta' не прокатывает, sox ждет > продолжения команд. > Заранее спасибо.А если так ущипнуть, добавить после grep'а | awk '{print $3}' или | awk -F: '{print $2}'
- sox stat, vfp7, 14:51 , 17-Окт-13 (2)
>> Задача выщипнуть значение "1.768463" из строки "Maximum delta" >> Вариант добавить в конце | grep 'Maximum delta' не прокатывает, sox ждет >> продолжения команд. >> Заранее спасибо. > А если так ущипнуть, добавить после grep'а > | awk '{print $3}' > или > | awk -F: '{print $2}' Здесь самое главное и заключается как вывод sox с stdout завернуть на grep ... Дальше уже дело техники :)
- sox stat, михалыч, 15:33 , 17-Окт-13 (3)
>[оверквотинг удален] >>> Вариант добавить в конце | grep 'Maximum delta' не прокатывает, sox ждет >>> продолжения команд. >>> Заранее спасибо. >> А если так ущипнуть, добавить после grep'а >> | awk '{print $3}' >> или >> | awk -F: '{print $2}' > Здесь самое главное и заключается как вывод sox с stdout завернуть на > grep ... > Дальше уже дело техники :) echo | sox -V0 -tossdsp -r48000 -c2 /dev/dsp3.1 -traw /dev/null stat trim 0 3
- sox stat, vfp7, 16:16 , 17-Окт-13 (4)
>[оверквотинг удален] >>>> Заранее спасибо. >>> А если так ущипнуть, добавить после grep'а >>> | awk '{print $3}' >>> или >>> | awk -F: '{print $2}' >> Здесь самое главное и заключается как вывод sox с stdout завернуть на >> grep ... >> Дальше уже дело техники :) > echo | sox -V0 -tossdsp -r48000 -c2 /dev/dsp3.1 -traw /dev/null stat trim > 0 3 Тоже не проходит :) Не отрабатывает ...
- sox stat, михалыч, 16:20 , 17-Окт-13 (5)
Какой-то хитрый у вас терминал. Висит что-ли? И как это вы так умудрились, у меня не получается! Ну, а если записать вывод во временный файл и после взять оттуда?
- sox stat, vfp7, 16:33 , 17-Окт-13 (6)
> Какой-то хитрый у вас терминал. Висит что-ли? > И как это вы так умудрились, у меня не получается! > Ну, а если записать вывод во временный файл и после взять оттуда? Я не ищу легких путей :) Когда то я кодил на lisp, наверно оттуда привычка стараться закодировать одной строчкой. Плюс я всегда оптимизирую код по максимуму, запись времянки добавит дополнительные дисковые операции в систему ... :) И лучше один раз отмучиться и решить проблему от и до, тем более аналогов этому всему я в инете не нашел, не в ру не в енг. Эта строка всего лишь маленький кусок кода полностью автоматизированной системы звукового оформления организаций. Плюс этот модуль был бы крайне актуален интернет радиостанциям и т.п. Этот код позволяет гарантировать, что на конечном устройстве - выходе звуковой карты, присутствует сигнал, то есть идет трансляция. При пропадании сигнала - запуск скрипта меняющего источник входного сигнала, посылка сообщения о сбое на линии и т.д. :) Так что лучше добиться надежной работы без костылей :)
- sox stat, михалыч, 16:43 , 17-Окт-13 (7)
>[оверквотинг удален] > более аналогов этому всему я в инете не нашел, не в > ру не в енг. > Эта строка всего лишь маленький кусок кода полностью автоматизированной системы звукового > оформления организаций. > Плюс этот модуль был бы крайне актуален интернет радиостанциям и т.п. > Этот код позволяет гарантировать, что на конечном устройстве - выходе звуковой карты, > присутствует сигнал, то есть идет трансляция. > При пропадании сигнала - запуск скрипта меняющего источник входного сигнала, посылка сообщения > о сбое на линии и т.д. :) > Так что лучше добиться надежной работы без костылей :) А тут ==> http://www.opennet.dev/openforum/vsluhforumID9/9749.html что, не пригодилось? pavlinux там опечатался, чуть подправив всё собирается как надо. #!/bin/shavs="/tmp/avs" cat > ${avs}.c <<EOT #include <stdio.h> main() { long a, b, c; a = b = c = 0; for ( a = 0; b = getchar(), b != EOF; ++a, c+=b ); printf ("%ld\n", c/a); } EOT gcc ${avs}.c -o ${avs} rm ${avs}.c head -c1000 /dev/dsp0.1 | ${avs}
И всё же я не понимаю, в чём у вас с sox засада?
- sox stat, vfp7, 17:02 , 17-Окт-13 (8)
Это решение через костыль. В соксе засада, что результат своей работы ( директивы stat ), он отдает в stdout, минуя pipe Я не могу добраться до результата работы statЭто результат на экране: Input File : '/dev/dsp3.1' (ossdsp) Channels : 2 Sample Rate : 48000 Precision : 16-bit Sample Encoding: 16-bit Signed Integer PCM In:0.00% 00:00:03.07 [00:00:00.00] Out:144k [======|=====!] Hd:0.0 Clip:0 Samples read: 294912 Length (seconds): 3.072000 Scaled by: 2147483647.0 Maximum amplitude: 0.999969 Minimum amplitude: -1.000000 Midline amplitude: -0.000015 Mean norm: 0.338436 Mean amplitude: -0.000044 RMS amplitude: 0.418896 Maximum delta: 1.768463 Minimum delta: 0.000000 Mean delta: 0.254371 RMS delta: 0.320575 Rough frequency: 5846 Volume adjustment: 1.000 Done. И я не могу завернуть в grep этот вывод, что бы выщипнуть всего одно значение от сюда - 1.768463
- sox stat, Andrey Mitrofanov, 17:23 , 17-Окт-13 (9)
> Это решение через костыль. > В соксе засада, что результат своей работы ( директивы stat ), он > отдает в stdout, минуя pipe Может быть в *stderr* ? Тогда 2>&1 должен сапсти отца демогратии. Если он, паршивец, конечно, не пишет в tty (или как оно там)... Хотя неее, это ж не ДОС. > Я не могу добраться до результата работы stat > Maximum delta: 1.768463 > И я не могу завернуть в grep этот вывод, что бы выщипнуть > всего одно значение от сюда - 1.768463
Ну, как завернёшь, выбрось греп и делай, как большой 2>&1 |awk '/^Maximum delta:/{print$NF}'
- sox stat, Andrey Mitrofanov, 17:26 , 17-Окт-13 (10)
> Может быть в *stderr* ? Тогда 2>&1 должен сапсти отца демогратии. > Если он, паршивец, конечно, не пишет в tty (или как оно там)... > Хотя неее, это ж не ДОС.//Имел в виду INT 10h против STDOUT в DOS, если кому. > Ну, как завернёшь, выбрось греп и делай, как большой > 2>&1 |awk '/^Maximum delta:/{print$NF}' Второй приём (да, когда в руках молоток...) 2>&1 |sed -n 's/^Maximum delta: *//p'
- sox stat, михалыч, 17:51 , 17-Окт-13 (12)
> Может быть в *stderr* ? Тогда 2>&1А всё-таки > Если он, паршивец, >> отдает в stdout тогда вроде как наоборот? 1>&2 Может попробовать |tee прикрутить? Да, нахрен! Перекрываем кислород полностью, пусть теперь потрепыхается! Закрывает ему стандартный вывод >&- ))))
- sox stat, vfp7, 18:46 , 17-Окт-13 (13)
>> Может быть в *stderr* ? Тогда 2>&1 > А всё-таки >> Если он, паршивец, >>> отдает в stdout > тогда вроде как наоборот? 1>&2 > Может попробовать |tee прикрутить? > Да, нахрен! > Перекрываем кислород полностью, пусть теперь потрепыхается! > Закрывает ему стандартный вывод >&- )))) Когда перекрыл кислород, то заметил что вывод stat отрабатывает ДО момента перекрывания кислорода. Честно говоря я уже начал буксовать, похоже что sox stat сперва выдает на экран свои данные, и только после этого передает управление далее ... Моих познаний здесь не хватит ... FreeBSD 9.1-RELEASE-p6 Generic x64, минимальные вмешательства в систему - это если кто то захочет повторить ситуацию.
- sox stat, михалыч, 19:37 , 17-Окт-13 (14)
> sox -V0 -tossdsp -r48000 -c2 /dev/dsp3.1 -traw /dev/null stat trim 0 3А зачем здесь /dev/null ? -n, --null Using a null file to output audio amounts to discarding the audio and is useful mainly with effects that produce information about the audio instead of affecting it (such as noiseprof or stat).
- sox stat, vfp7, 09:09 , 22-Окт-13 (15)
>[оверквотинг удален] > Using a null file to output audio > amounts to discarding the > > audio and is useful mainly with effects that produce > information > > about the audio instead of affecting it (such > as noiseprof or > > stat).Этот код тестовый, пробую все варианты, но вывод на экран так и не удалось перехватить :(
- sox stat, Andrey Mitrofanov, 17:27 , 17-Окт-13 (11)
> А если так ущипнуть, добавить после grep'а > | awkUseless use of grep! (google://useless use of cat)
|