В самом простом случае, предполагая, что формат записей "пути" точно такой, как показано, вы можете использовать awk
в режиме абзаца
awk '{print > $3".txt"}' RS= ORS='\n\n' file
Просто используйте цикл for и счетчик:
k=1; for file in *mp3; do
id3v2 --track "$k" "$file"
((k++))
done
Это позволит перебрать все файлы и каталоги, имя которых заканчивается на mp3
, сохраняя каждый как $file
. Затем переменная $k
увеличивается один раз за итерацию (((k++))
), поэтому $k
будет номером файла в порядке их обработки, и вы можете использовать --track "$k"
для установки номера трека.
Это может быть просто (работает даже с именами файлов, в которых используются новые строки):
arr=(*)
Все имена файлов в pwd будут храниться в массиве и доступ к ним будет осуществляться по их номеру, например: "${arr[2]}"
.
Звездочка очень похожа на ls, попробуйте echo *
или для выбора mp3 попробуйте echo *.mp3
чтобы увидеть ее в действии.
Вы можете просмотреть список всех файлов с помощью:
printf '%s\n' "${arr[@]}"
Затем вы можете использовать цикл для обработки каждого имени файла:
for (( i=0 ; i<${#arr[@]} ; i++ )); do
id3v2 --track "$((i+1))" "${arr[@]}"
done