【发布时间】:2016-04-30 14:55:00
【问题描述】:
我有一个看起来有点像这样的目录:
drw-r--r-- 1 root root 0 Jan 24 17:26 -=1=-directoryname
drw-r--r-- 1 root root 0 Jan 24 17:26 -=2=-directoryname
drw-r--r-- 1 root root 0 Jan 24 17:26 -=3=-directoryname
drw-r--r-- 1 root root 0 Jan 24 17:26 -=4=-directoryname
drw-r--r-- 1 root root 0 Jan 24 17:26 -=5=-directoryname
我正在尝试编写一个脚本来更改这些文件夹
-=1=- Folder#1
去掉“-=1=-”部分,可惜我没有运气。
谁能帮我找到解决办法?
到目前为止,我下面的脚本失败了。
#!/bin/bash
for i in {1..250}
do
rename "-=$i=-" ""*
i=i+1
done
我用的是 1..250 因为有 250 个文件夹。
【问题讨论】:
-
rename命令是基于 Perl 还是更简单的 C 程序? -
更新问题,去掉开头部分后目录名不是数字标识的。我有重命名的珍珠版。
-
现在你遇到了不同的问题;目录名称部分是否始终相同?您应该显示
-=1=-directoryname和-=2=-nameofdirectory和-=3=-directory和-=4=-name或其他类似的差异,以便更清楚地处理您正在处理的内容。如果您有 Perlrename(Perl 中没有“a”),那么我的答案可以修改;例如,您只需将 glob 更改为-=*=-*。如果没有空格,请从s///命令正则表达式中删除空格。等等。
标签: linux bash shell rename strip