centos7 上批量改文件名怎么改呢

2018-05-18 00:25:37 +08:00
 Cy86

服务器上有下好的一堆视频,都是数字格式比如: 12345.MP4 1241057.MP4 ,但我电脑本地 sublime 里有 数字 ID 对应的电影名, 格式: 12345=澳门首家线上#$开业啦
1241057 = x 感荷 guan 在线发牌

请问各位大神,一个一个换,太慢了,有什么办法能把视频批量对号入座般重命名么. 小弟以链接相报

还有个额外问题, 服务器里是有很多视频,但我需要传到某网盘里,他网盘每个视频能拉个在线视频链接出来所以用的他的, 但上传的话需要用.exe 结尾的文件, 如果我本地上传的话 用 win 电脑的确方便, 但速度只有 200K, 所以想怎么再能在 VPS 里 打开.exe 软件 然后可视化操作就像在 Windows 上一样 操作这个软件, 方便把视频上传进去.

2822 次点击
所在节点    程序员
5 条回复
msg7086
2018-05-18 00:54:11 +08:00
sublime 里用多光标功能把文件改变成
mv "12345.mp4" "12345=xxyyzz.mp4" ( Windows 的话用 ren 命令)
的形式,然后贴进服务器命令行不就好了。

Windows 也可以用 xTools 拖把改名器里的文本文件命名功能来改。
KasonPasser
2018-05-18 07:35:48 +08:00
用 vim 中的 :r ls 导入文件列表,然后就用正则替换成 shell,执行 shell。
omph
2018-05-18 09:00:55 +08:00
mritd
2018-05-18 09:29:03 +08:00
我选择自己写一个
ceyes
2018-05-18 09:56:13 +08:00
```
$ ls
123.MP4 12345.MP4 1241057.MP4 map.txt test.MP4 test.mp3

$ cat map.txt
12345=澳门首家线上#$开业啦
1241057 = x 感荷 guan 在线发牌

$ for i in *.MP4; do fid=${i//.MP4}; fname=$(awk -F '=| = ' '{if ($1~/^'"$fid$"'/) {print $2; exit}}' map.txt); fname=${fname:-$fid}; if [[ "$fname.MP4" = "$i" ]]; then continue; else echo "mv '$i' '$fname.MP4'"; fi; done
mv '12345.MP4' '澳门首家线上#$开业啦.MP4'
mv '1241057.MP4' 'x 感荷 guan 在线发牌.MP4'
```

谨慎起见,先把 mv 命令打印出来了,自己检查下,没问题的话,复制运行即可。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/455769

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX