- 门罗音乐的文件 自己把 rar 文件名字中奇葩的字符去掉了一部分 批量解压开了
- 解压得到的文件名字是目录 里面含有文件 一个或者多个文件
- 部分目录名字如下
[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
- 希望把 [ ] .-. 之类的奇葩字符去掉 谢谢
- 文件名的全部上传到了这里 有效期 14 天
https://transfer.sh/YqlQ3/name
不想写脚本的话,可以试试看这个小软件:RegexRenamer
用 bash 做这个要正确地搞定各种 blob 和数层 escape,考虑别的语言吧..
*各种 glob
直接 rename 命令吧
我的发行版 rename 还很奇葩 是个 gui 界面的试了一下还不行。。。
谢谢 回去试试
好的 谢谢
试下 Total Commander 批量重命名,文件名在 Sublime Text 或者 VS Code 里面批量处理一下,1 分钟搞定。
mv $file 改为 mv "$file"
安装 renameutils,使用 qmv
用 vim 可以随心欲的改。
http://vim.wikia.com/wiki/Bulk_rename_files_with_Vim
vim 的正则: http://vimregex.com/
例如匹配 行首大括号部分::/\[\d\+\.*.\+\],至于匹配 .-. 更容易了 :/\.-\.
替换使用 :%s,:%s/\[\d\+\.*.\+\]//gc,无需确认的话,去掉 c
这种有规律的,一般都是用 emacs 的 dired 解决
openSUSE15.0 官方没有这个包 只有 42.3 个人打包的一个。。。
试了 不行 里面的奇葩字符太多无法实现
这里的文件名字都是目录 不是单纯的单个 如果是单个文件的话用 kate 就能搞定了
没玩过 emacs。。。。。
好头像,我还有个 blackbetty passport 呢。看到这个标志,真情怀啊、
ls -i
找到文件对应的 inode number
然后
find -inum 刚才找到的 inodenum -exec mv '{}' '新文件名' \;
我的卖了。。。。
我试试 谢谢
你认真看过 Bulk_rename_files_with_Vim 这个链接了吗?
第一步就是教怎么批量把文件或目录名导入 vim,然后是通过正则替换生成批量的 mv 命令,最后是执行。
我没明白你说的单个文件是什么意思。
我看看谢谢
1、批量替换 "." 为 " "
2、批量替换 " - " 为 " "
3、批量替换 " 扩展名" 为 ".扩展名"
1. (\.)?-(\.)? 替换为 -
2. (\[)?(\d+)(\]|\.Update)?(\]|\.)? 保留第二组并加一个空格
另外你给的文件名只能说明你的暴力替换完全没用……
弄好一部分了 谢谢各位的回答
特别感谢
@redsonic
cat ~/下载 /name | while read line; do echo $line | sed -e 's/[.|-]/ /g' -e 's/\[/ /' -e 's/\]/ /' ; done
刚弄好了 谢谢你
cat name | sed 's/\[//g' | sed 's/\]//' | sed "s/[.-]//g"
01HemiSyncMetaMusicAngel Paradise 天使乐园
02HemiSyncMetaMusicAscension 耶稣升天
03HemiSyncMetaMusicBaroque Garden
04HemiSyncMetaMusicBetween Worlds
05HemiSyncMetaMusicBreakthrough for peakperformance
06HemiSyncMetaMusicChakra Journey
07HemiSyncMetaMusicCloudscapes
08HemiSyncMetaMusicConvergence
不知道是不是要这样的效果
mv $file "$(echo $file | tr -d '[]-.')"
是的 请问你是哪种方法实现的?
cat name | sed 's/\[//g' | sed 's/\]//' | sed "s/[.-]//g"
感觉直接替换掉就 OK 吧? 替换之后简单看了下,和 楼的好像是一样的。
在 vim 中 `:%s/[\[\]\.-]//g`
或者如果用的是 PowerShell: `(gc name.txt -Encoding Default) -replace "[\[\]\.-]",""`
ls | xargs awk '{printf("mv %s `echo %s \ sed -E s/[^0-9A-Za-z]//g`",$1,$1)}' | sh
手机码字,自行调试
从后往前匹配
学习学习
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 老文件名 新文件名
实际上不行 谢谢回复
可是,我都已经跑完了啊…