ディレクトリ内のファイル:
$ ls | sort -n
1.mp4
2 .mp4
3 .mp4
4 .mp4
5 .mp4
6 .mp4
7 .mp4
8 .mp4
9 .mp4
10 .mp4
プレイリストファイルのファイル名リスト:
$ cat playlist.m3u8
1- Introduction-OxIDLw0M-m0.mp4
2 - How React Works-pKYiKbf7sP0.mp4
3 - React Setup (with CDN)-SAX6RMEFVM4.mp4
4 - React Components-Fis_Q3rkgtM.mp4
5 - State-yuN4EMjR4K4.mp4
6 - React Dev Tools--XQ2zCdxw0I.mp4
7 - DOM Events--ZB8I2PmiOw.mp4
8 - Changing State (and 'this')-XJzDF9bj368.mp4
9 - Intro to Forms-BVbdZ1133JU.mp4
10 - Create React App-5QwNCX3UbXc.mp4
ファイル名は数字で始まります。プレイリストファイルにリストされている名前とその番号でディレクトリのファイル名を変更するにはどうすればよいですか?結果は次のとおりです。
$ ls | sort -n
1- Introduction-OxIDLw0M-m0.mp4
2 - How React Works-pKYiKbf7sP0.mp4
3 - React Setup (with CDN)-SAX6RMEFVM4.mp4
4 - React Components-Fis_Q3rkgtM.mp4
5 - State-yuN4EMjR4K4.mp4
6 - React Dev Tools--XQ2zCdxw0I.mp4
7 - DOM Events--ZB8I2PmiOw.mp4
8 - Changing State (and 'this')-XJzDF9bj368.mp4
9 - Intro to Forms-BVbdZ1133JU.mp4
10 - Create React App-5QwNCX3UbXc.mp4
ベストアンサー1
while read -r i ; do
file=$(echo $i | cut -d- -f1).mp4
if [ -e "$file" ]; then
mv "$file" "$i"
fi
done < playlist.m3u8
for i in ?*.mp4; do
mv "$i" "$(grep -xm1 "${i%.*}"'-.*\.mp4' playlist.m3u8)"
done