我正在使用這段代碼在統一專案中為統一資產商店按順序重命名我的曲目
ls -v | cat -n | while read n f; do mv -n "$f" "cinematic$n.mp3"; done
我如何將其與使用 150 個檔案塊分隔不同檔案夾中的檔案的功能相結合?這樣做的目的是為一個統一的樣本包相應地標記檔案,而不會陷入嚴重的偏差
期待
親切/熱情/最好的問候/祝愿
謝謝你們。兩種解決方案都有效。閱讀您的回復后,這是我對您的貢獻的補充
f=1 d=1 n=150
for file in *.mp3
do
if [ "$(( f % n ))" -eq 1 ]
then
dir=dir$d
mkdir "$dir"
echo mkdir "$dir"
d=$(( d 1 ))
fi
mv -n "$file" "$dir/cinematic$f.mp3"
echo mv -n "$file" "$dir/cinematic$f.mp3"
f=$(( f 1 ))
done
#############################################
a=0
b=0
n=150
files=(*.mp3)
while (( ${#files[@]} > 0 )); do
dir="./dir$(( a))"
mkdir -p "$dir"
echo mkdir -p "$dir"
for f in "${files[@]:n * a: n}"; do
mv -nv "$f" "$dir/cinematic$(( b)).mp3"
echo mv -nv "$f" "$dir/cinematic$(( b)).mp3"
done
done
uj5u.com熱心網友回復:
我會將所有檔案讀入一個陣列:
a=0
b=0
n=150
files=(*.mp3)
while (( ${#files[@]} > 0 )); do
dir="./dir$(( a))"
mkdir -p "$dir"
for f in "${files[@]:0:n}"; do
mv -nv "$f" "$dir/cinematic$(( b)).mp3"
done
files=( "${files[@]:n}" )
done
uj5u.com熱心網友回復:
謝謝你們。兩種解決方案都有效。這是我對你的貢獻的附錄
f=1 d=1 n=150
for file in *.mp3
do
if [ "$(( f % n ))" -eq 1 ]
then
dir=dir$d
mkdir "$dir"
echo mkdir "$dir"
d=$(( d 1 ))
fi
mv -n "$file" "$dir/cinematic$f.mp3"
echo mv -n "$file" "$dir/cinematic$f.mp3"
f=$(( f 1 ))
done
#############################################
a=0
b=0
n=150
files=(*.mp3)
while (( ${#files[@]} > 0 )); do
dir="./dir$(( a))"
mkdir -p "$dir"
echo mkdir -p "$dir"
for f in "${files[@]:n * a: n}"; do
mv -nv "$f" "$dir/cinematic$(( b)).mp3"
echo mv -nv "$f" "$dir/cinematic$(( b)).mp3"
done
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/471555.html
標籤:重击
下一篇:如何將逐行文本寫入csv檔案
