我想运行一个bash脚本,它递归地清理目录中的每个文件名。例如,我有文件名:清除目录中的文件名
The.Sarah.Jane.Adventures.S04E07.The.Empty.Planet.Part1.WS.PDTV.XviD-BIA [sharethefiles.com] .AVI The.Sarah.Jane .Adventures.S04E08.The.Empty.Planet.Part2.WS.PDTV.XviD-BIA [sharethefiles.com] .AVI
我想将文件转换为:
萨拉·珍妮冒险S04E07的Empty Planet Part1.avi
The Sarah Jane Adventures S04E07 The Empty Planet Part2.avi
所以我有这个sed脚本:
sed -e's/\[sharethefiles\.com\]//g; s/WS//g; s/PDTV//g; s/Xvid-BiA//g; s/XviD-BiA//g; s/\.\.//g; s/\./\ /g;'
但它带来了问题。这个。 (句点)在后缀(avi)之前被删除,我真的不知道如何用动态文件替换它。有时在后缀之前可能只有一个空格,有时没有空格,因为该脚本也会删除双重句点。
解决问题的任何想法?
感谢您的帮助!
谢谢,这似乎为我想要的目的,工作不够精细。在特殊情况下,我最终在案件发生前将空间移除,并且工作得很好。轻松修复,等等......再次感谢! – Ratty 2010-11-04 20:36:08
@Ratty:你可以用's /\.\+//g'替换倒数第二个模式,并用Gingi的模式替换上一个模式,从而消除'tr'。 – 2010-11-04 21:56:00