[87].Hemi-Sync.-.Human Plus.-.Do This Now [88].Hemi-Sync.-.Human Plus.-.Eat-No Eat [89].Hemi-Sync.-.Human Plus.-.Eight Great [90].Hemi-Sync.-.Human Plus.-.Hypertension [91].Hemi-Sync.-.Human Plus.-.Immunizing [92].Hemi-Sync.-.Human Plus.-.Imprint [93.Update].Hemi-Sync.-.Human Plus.-.Let-Go [94].Hemi-Sync.-.Human Plus.-.Lungs Repairs and Maintenance [95].Hemi-Sync.-.Human Plus.-.Mobius West [96].Hemi-Sync.-.Human Plus.-.Nutricia [97].Hemi-Sync.-.Human Plus.-.Off-Loading [98].Hemi-Sync.-.Human Plus.-.Pain Control [130].Hemi-Sync.-.MindFood.-.Soft and Still [131].Hemi-Sync.-.MindFood.-.The ''SO'' Chord [132].Hemi-Sync.-.MindFood.-.The Way of Hemi-Sync [133].Hemi-Sync.-.Explore the Original.-.Beyond the Golden Light [134].Hemi-Sync.-.Explore the Original.-.Connecting With Your Inner Guides [135].Hemi-Sync.-.Explore the Original.-.Golden Mind [136].Hemi-Sync.-.Explore the Original.-.Healing Journeys Support [137].Hemi-Sync.-.Explore the Original.-.Inner States Dawning of Awareness 137Hemi-Sync.-.Explore the Original.-.Inner States Dawning of Awareness 内在意识的曙光 [138].Hemi-Sync.-.Explore the Original.-.The Music of Graceful Passages
## 去掉改文件名开头的 “\[” for file in ls \[*; do mv $file `echo $file | sed 's/\[//g'`; done ## 去掉文件名字开头的“〖” for file in ls 〖*; do mv $file `echo $file | sed 's/〖//g'` done #-------------- ##去掉文件名中间的 "]" for file in `ls | grep "]"`; do mv $file `echo $file | sed 's/]//g'`; done ##去掉文件名字中间的“〗” for file in `ls | grep "〗"` do mv $file `echo $file | sed 's/〗//g'` done ## 去掉文件名字中间的“." for file in `ls | grep "\."` do mv $file `echo $file | sed 's/\./-/g'` done ##改-rar 为.rar for file in `ls | grep "\-rar"` do mv $file `echo $file | sed 's/\-rar/.rar/g'` done ##去掉文件名字中的“专辑名称:” for file in `ls | grep "专辑名称:"` do mv $file `echo $file | sed 's/专辑名称://g'` done ##去掉文件名字中的“:门罗研究所最广受欢迎的系列:” for file in `ls | grep ":门罗研究所最广受欢迎的系列:"` do mv $file `echo $file | sed 's/:门罗研究所最广受欢迎的系列://g'` done ## 批量解压 rar 到各自目录 for i in ls *.rar; do rar x $i done
![]() | 1 joke392 2018-09-07 09:37:03 +08:00 不想写脚本的话,可以试试看这个小软件:RegexRenamer |
![]() | 2 momocraft 2018-09-07 09:46:29 +08:00 用 bash 做这个要正确地搞定各种 blob 和数层 escape,考虑别的语言吧.. |
![]() | 3 momocraft 2018-09-07 09:46:44 +08:00 *各种 glob |
![]() | 4 holmesabc 2018-09-07 09:49:15 +08:00 直接 rename 命令吧 |
![]() | 5 liangzi OP @holmesabc 我的发行版 rename 还很奇葩 是个 gui 界面的试了一下还不行。。。 |
![]() | 8 mwwfer 2018-09-07 09:58:11 +08:00 试下 Total Commander 批量重命名,文件名在 Sublime Text 或者 VS Code 里面批量处理一下,1 分钟搞定。 |
9 iwtbauh 2018-09-07 10:23:05 +08:00 via Android mv $file 改为 mv "$file" |
![]() | 10 omph 2018-09-07 10:36:16 +08:00 ![]() 安装 renameutils,使用 qmv |
11 zhouzm 2018-09-07 11:00:42 +08:00 ![]() 用 vim 可以随心欲的改。 http://vim.wikia.com/wiki/Bulk_rename_files_with_Vim vim 的正则: http://vimregex.com/ 例如匹配 行首大括号部分::/\[\d\+\.*.\+\],至于匹配 .-. 更容易了 :/\.-\. 替换使用 :%s,:%s/\[\d\+\.*.\+\]//gc,无需确认的话,去掉 c |
12 sunznx 2018-09-07 11:02:21 +08:00 这种有规律的,一般都是用 emacs 的 dired 解决 |
17 Aprilming 2018-09-07 11:25:46 +08:00 好头像,我还有个 blackbetty passport 呢。看到这个标志,真情怀啊、 |
![]() | 18 redsonic 2018-09-07 11:28:29 +08:00 ![]() ls -i 找到文件对应的 inode number 然后 find -inum 刚才找到的 inodenum -exec mv '{}' '新文件名' \; |
![]() | 19 liangzi OP @redsonic 我的卖了。。。。 |
21 zhouzm 2018-09-07 12:01:31 +08:00 ![]() @liangzi 你认真看过 Bulk_rename_files_with_Vim 这个链接了吗? 第一步就是教怎么批量把文件或目录名导入 vim,然后是通过正则替换生成批量的 mv 命令,最后是执行。 我没明白你说的单个文件是什么意思。 |
![]() | 23 kokutou 2018-09-07 12:15:07 +08:00 1、批量替换 "." 为 " " 2、批量替换 " - " 为 " " 3、批量替换 " 扩展名" 为 ".扩展名" |
![]() | 24 mingl0280 2018-09-07 12:26:08 +08:00 1. (\.)?-(\.)? 替换为 - 2. (\[)?(\d+)(\]|\.Update)?(\]|\.)? 保留第二组并加一个空格 另外你给的文件名只能说明你的暴力替换完全没用…… |
26 aaaaasam 2018-09-07 14:29:44 +08:00 ![]() cat ~/下载 /name | while read line; do echo $line | sed -e 's/[.|-]/ /g' -e 's/\[/ /' -e 's/\]/ /' ; done |
28 Lostars 2018-09-07 16:18:55 +08:00 cat name | sed 's/\[//g' | sed 's/\]//' | sed "s/[.-]//g" 01HemiSyncMetaMusicAngel Paradise 天使乐园 02HemiSyncMetaMusicAscension 耶稣升天 03HemiSyncMetaMusicBaroque Garden 04HemiSyncMetaMusicBetween Worlds 05HemiSyncMetaMusicBreakthrough for peakperformance 06HemiSyncMetaMusicChakra Journey 07HemiSyncMetaMusicCloudscapes 08HemiSyncMetaMusicConvergence 不知道是不是要这样的效果 |
29 xiaq 2018-09-07 16:45:25 +08:00 via iPad mv $file "$(echo $file | tr -d '[]-.')" |
31 Lostars 2018-09-07 19:32:59 +08:00 @liangzi cat name | sed 's/\[//g' | sed 's/\]//' | sed "s/[.-]//g" |
![]() | 32 Tumblr 2018-09-07 20:11:47 +08:00 感觉直接替换掉就 OK 吧? 替换之后简单看了下,和 #28 楼的好像是一样的。 在 vim 中 `:%s/[\[\]\.-]//g` 或者如果用的是 PowerShell: `(gc name.txt -Encoding Default) -replace "[\[\]\.-]",""` |
![]() | 33 wweir 2018-09-07 20:45:06 +08:00 via Android ![]() ls | xargs awk '{printf("mv %s `echo %s \ sed -E s/[^0-9A-Za-z]//g`",$1,$1)}' | sh 手机码字,自行调试 |
34 user002 2018-09-07 21:27:10 +08:00 via Android ![]() 从后往前匹配 |
35 user002 2018-09-07 21:32:29 +08:00 via Android 学习学习 |
![]() | 36 ETiV 2018-09-07 21:50:49 +08:00 ![]() ls \[* | while read line ; do new_name=$(echo "${line}" | sed 's!\[!!g' | sed 's!\]!!g' | sed 's!\.-\.!_!g') ; mv "${line}" "${new_name}" ; done ls [ 开头的文件,会产生每行一个文件名 循环每行的文件名: 3 个 sed 分别移除 [、移除 ]、替换 .-. 成 _,形成新的 name 然后 mv 老文件名 新文件名 |
![]() | 39 liangzi OP - 感谢大家热心的帮助 - 原文件名字上传到了这里[https://transfer.sh/14gOEi/menluo_music_directory-txt]( https://transfer.sh/14gOEi/menluo_music_directory-txt0 有效期 14 天 - 这是压缩文件 要做的目的就是批量解压然后把解压的文件批量重新命名 以实现文件名字中没有奇葩字符 - 我是个这方面的外行 用到的方法也都是从网上搜出来比猫画虎的试着做 - 目前从 @zhouzm @redsonic 两位提供的方法中自己慢慢摸索着实现了个差不多 特别感谢~ ^_^ - 最后的目录是这样的[https://transfer.sh/WzeMa/remenlu_music]( https://transfer.sh/WzeMa/remenlu_music) |
40 ps1aniuge 2018-09-08 01:08:33 +08:00 ![]() #win,linux 通用的 powershell 代码 dir 你的目录|foreach { $a = $_.name. Replace('.-.'.''). Replace('['.''). Replace(']'.''). Replace('〖'.''). Replace('〗'.''). Replace('.'.''). Replace('-rar'.'.rar'). Replace('专辑名称:'.''). Replace(':门罗研究所最广受欢迎的系列:'.'') Rename-Item -LiteralPath $_.FullName -NewName $a } |
41 zhouzm 2018-09-08 09:55:08 +08:00 @ps1aniuge 替换在准确性上是不如正则匹配的,例如 [87] 和 [93.Update] 都是要删除的,还有"137Hemi-Sync"这里的 137,正则可以很一次匹配,简单替换则无法处理。 尤其是楼主例子里的文件名其实是有规律的,写好正则后,可以整行一次性匹配。 |
![]() | 42 zyuhung 2018-09-08 11:00:19 +08:00 复制到 word 文档,然后全选,表格→文字转换表格,文字分隔位置→其他字符 |
43 ps1aniuge 2018-09-08 15:16:37 +08:00 如果只改目录名。加上-Directory 如果含有子目录的话,就加上-Recurse 41 楼:没看到楼主要求去掉数字,去掉数字也可以不用正则。 |
44 ps1aniuge 2018-09-08 15:18:36 +08:00 Replace('〖',''). 这里面的逗号,为啥贴上去后改变点了? |
![]() | 45 liangzi OP 我发现我的发行版里面有个 krename 分分钟搞定文件目录和名字 还能递归命名目录下的名字.... |