Вам нужно будет использовать echo
, чтобы передать $ i
в awk. В противном случае он ищет файл.
A=$(echo $i | awk -F_ '{print $1}')
То же самое с B
Если все файлы находятся в одном каталоге, и вы хотите передать список отсортированных имен файлов в sox
, тогда оболочка bash может сделать это напрямую:
shopt -s nocaseglob
sox *.flac
Параметр оболочки nocaseglob
позволяет подстановочному знаку выбирать foo.FLAC, foo.Flac, foo.flaC и т. д. Подстановочный знак расширяется до списка, отсортированного по алфавиту, почти так же, как обычный sort
. Например, 9-file.flac
будет помещено после любого имени файла, начинающегося с 8
.
Спасибо @mosvy за упрощение приведенного выше bash -ism в подстановочный знак, который должен работать с любой оболочкой:
sox *.[Ff][Ll][Aa][Cc]
Скобки допускают любую комбинацию букв верхнего -и нижнего -регистра в расширении «flac», чтобы соответствовать тому, что делал ваш find... -iname "*.FlAc"
.