Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用重命名和grep模式重命名终端中的文件_Regex_Rename - Fatal编程技术网

Regex 使用重命名和grep模式重命名终端中的文件

Regex 使用重命名和grep模式重命名终端中的文件,regex,rename,Regex,Rename,我试图使用重命名更改目录中许多文件的名称,但我使用的模式无法使用重命名,即使它在我的文本编辑器(BBEdit)中工作。我想知道如何修改我正在使用的rename命令或模式,以便消除每个文件的长前缀 我的目录列表如下所示: bos012_attempt_2018-02-15-01-52-18_KIC Document 0001.pdf gem512_attempt_2018-02-14-20-30-11_Geo HW 2.pdf kgs252_attempt_2018-02-14-23-35-03_

我试图使用
重命名
更改目录中许多文件的名称,但我使用的模式无法使用
重命名
,即使它在我的文本编辑器(BBEdit)中工作。我想知道如何修改我正在使用的
rename
命令或模式,以便消除每个文件的长前缀

我的目录列表如下所示:

bos012_attempt_2018-02-15-01-52-18_KIC Document 0001.pdf
gem512_attempt_2018-02-14-20-30-11_Geo HW 2.pdf
kgs252_attempt_2018-02-14-23-35-03_kgs252_hw2.pdf
nrs728_attempt_2018-02-15-10-04-42_mids.png
oko018_attempt_2018-02-15-23-57-57_Hw2.pdf
我想把这个换成

KIC Document 0001.pdf
Geo HW 2.pdf
kgs252_hw2.pdf
mids.png
Hw2.pdf
使用
rename-vs's/\D\D\D\D\D\D\D\u尝试\u 2018-\D\D-\D\D-\D\D-\D\D-\D\D/'/g'*
在名称中不产生任何更改。然而,在我的文本编辑器中,将模式
\D\D\D\D\D\u trunt\u 2018-\D\D-\D\D-\D\D-\D\D\D\u更改为无字符效果很好。我试过不同的东西,例如

重命名-vs\D\D\D\D\D\D\u尝试\u 2018-\D\D-\D\D-\D\D-\D\D-\D\D''.*

什么也没有

mydir$rename-nvs\D\D\D\D\D\D\u尝试\u 2018-\D\D-\D\D-\D\D-\D\D-\D\D''.*

返回

Using expression: sub { use feature ':5.18';
s/\Q${\"DDDddd_attempt_2018\-dd\-dd\-dd\-dd\-dd_"}// }
'bos012_attempt_2018-02-15-01-52-18_KIC_Document_0001.pdf' unchanged
'gem512_attempt_2018-02-14-20-30-11_Geo_HW_2.pdf' unchanged
'nrs728_attempt_2018-02-15-10-04-42_mids.png' unchanged
'oko018_attempt_2018-02-15-23-57-57_Hw2.pdf' unchanged

根据您的
重命名
版本,您可以使用此
重命名
命令:

rename -n 's/.*_attempt_\d{4}(-\d{2}){5}_//' *.{pdf,png}


如果您对输出感到满意,请删除dry run的remove
-n
参数。

对我不起作用。返回时没有任何消息。使用
-n
或不使用
-n
。您的文件名可能使用不同的模式,或者您可能没有使用相同的
重命名
perl实用程序。我刚刚意识到
重命名
没有递归选项。这就是问题所在。但我希望它有。使用它
查找-是的,我在挣扎。它的
-regex
并不像我期望的那样工作。谢谢你的帮助。
'bos012_attempt_2018-02-15-01-52-18_KIC Document 0001.pdf' would be renamed to 'KIC Document 0001.pdf'
'gem512_attempt_2018-02-14-20-30-11_Geo HW 2.pdf' would be renamed to 'Geo HW 2.pdf'
'kgs252_attempt_2018-02-14-23-35-03_kgs252_hw2.pdf' would be renamed to 'kgs252_hw2.pdf'
'oko018_attempt_2018-02-15-23-57-57_Hw2.pdf' would be renamed to 'Hw2.pdf'
'nrs728_attempt_2018-02-15-10-04-42_mids.png' would be renamed to 'mids.png'