V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Cy86
V2EX  ›  程序员

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

  •  
  •   Cy86 · 2018-05-18 00:25:37 +08:00 · 2947 次点击
    这是一个创建于 2364 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    5 条回复    2018-05-18 09:56:13 +08:00
    msg7086
        1
    msg7086  
       2018-05-18 00:54:11 +08:00   ❤️ 1
    sublime 里用多光标功能把文件改变成
    mv "12345.mp4" "12345=xxyyzz.mp4" ( Windows 的话用 ren 命令)
    的形式,然后贴进服务器命令行不就好了。

    Windows 也可以用 xTools 拖把改名器里的文本文件命名功能来改。
    KasonPasser
        2
    KasonPasser  
       2018-05-18 07:35:48 +08:00
    用 vim 中的 :r ls 导入文件列表,然后就用正则替换成 shell,执行 shell。
    omph
        3
    omph  
       2018-05-18 09:00:55 +08:00
    mritd
        4
    mritd  
       2018-05-18 09:29:03 +08:00 via iPhone
    我选择自己写一个
    ceyes
        5
    ceyes  
       2018-05-18 09:56:13 +08:00   ❤️ 1
    ```
    $ 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 命令打印出来了,自己检查下,没问题的话,复制运行即可。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4705 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:35 · PVG 13:35 · LAX 21:35 · JFK 00:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.