Использовать aplay
вместо play
для проигрывания необработанного файла, этот способ, которым можно указать, что это - необработанное аудио переключателем-t:
aplay -q -c 2 -t raw -f s16 test.raw
Я не думаю, что Вы получаете право группы. Попробовать это?
sed 's:\([]\[\^\$\.\*\/]\):\\\1:g'
Править: nevermind, я не знал об уместности и. Проблема - Вы, нуждаются к дополнительному Escape в наклонных чертах в замене из-за парсинга и передачи оболочке sub.
sed 's:[]\[\^\$\.\*\/]:\\\\&:g'
Кроме того, при использовании $ (команда) вместо обратных галочек Вам не нужен дополнительный \
Итак, задача состоит в том, чтобы написать sed
подстановку, которая экранирует все специальные символы (определяемые как символы []^$.*/
, и я добавил \
тоже) в строке.
Подстановка может выглядеть так
s/[][\^$.*/]/\\&/g
Обратите внимание, что нам не нужно экранировать ни один из символов в наборе [...]
(\
тоже воспринимается буквально, поэтому мы не можем ничего там экранировать), и что единственное, в чем мы должны быть уверены, это то, что ]
находится в самом начале.
Таким образом, сценарий (переписанный как функция shell и переделанный другими способами) становится
function escape
{
printf '%s\n' "$1" | sed 's/[][\^$.*/]/\\&/g'
}
Тестирование:
$ escape 'hello world'
hello world
$ escape '*.*'
\*\.\*
$ escape '\/'
\\\/
$ escape '/\'
\/\\
$ escape 's/[][\^$.*/]/\\&/g'
s\/\[\]\[\\\^\$\.\*\/\]\/\\\\&\/g
$(command)
открывает подоболочку, таким образом, что-либо в parens работает как будто на его собственной командной строке. См. больше информации: wiki.bash-hackers.org/syntax/expansion/cmdsubst – Drake Clarris 08.11.2012, 16:58