我一直在使用GPRename来批量重命名文件;这比单独更正每个文件更有效,但似乎仍然比它可能的效率低,主要是因为我不理解所使用的正则表达式语法,或者因为正则表达式实现不完整1
给定以下语法的文件列表:
(01) - title of file1.avi
(02) - title of file2.avi
(03) - title of file3.avi
Run Code Online (Sandbox Code Playgroud)
我尝试使用“替换”(选择正则表达式选项,取消选择区分大小写的选项):
(\(\d{2}\))
Run Code Online (Sandbox Code Playgroud)
然后预览显示(鉴于我尚未指定“替换为”选项):
title of file1.avi
title of file2.avi
title of file3.avi
Run Code Online (Sandbox Code Playgroud)
这很好,很明显正则表达式正在识别正确的组((01))。现在,我希望在“替换为”选项中(使用 JavaScript 语法)使用:
$1
Run Code Online (Sandbox Code Playgroud)
(我也尝试使用'$1',\1和'\1')
这只是为了检查我是否可以访问匹配的组,而我似乎不能,正如我想的那样,匹配的组被替换为文字替换字符串。
所以,我的问题是:是否可以匹配一组特定的字符,在这种情况下是括号内的数字,然后将它们插入到替换字符串中?所以:
(01) title of file1.avi
(02) title of file2.avi
(03) title of file3.avi
Run Code Online (Sandbox Code Playgroud)
变成:
01 title of file1.avi
02 title of file2.avi
03 title of file3.avi
Run Code Online (Sandbox Code Playgroud)
我有一个文件夹,其中包含 500 多个带有特定前缀的文件。这些文件分布在一个目录中的多个文件夹中。我的目标是在这些多个文件中重命名该前缀。
示例文件名和路径:
目标是将它们重命名为:
笔记:
任何命令行、程序、指南、教程或链接将不胜感激。提前致谢!
我试图找到一种从目录中删除括号和方括号的方法,但它们的模式并不完全相同。有些是这样的:(1234) ABC [xyz]。其他人都是这样[xyz] ABC (1234)(987)。
编辑:所需的输出将是 ABC
我怎样才能做到这一点?
我在原始命名方案中有大约 2000 个文件。
我需要将它们全部取出,将前 4 个字符移动到扩展名之前的文件名末尾,然后在前 4 个字符之前添加一个空格。
基本上,来自:
0123 [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL).jpg
Run Code Online (Sandbox Code Playgroud)
到
[UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL) 0123.jpg
Run Code Online (Sandbox Code Playgroud) 我有 365 个文件名
MOD11A1.A2010001.h24v06.006.2016025150444.hdf
MOD11A1.A2010002.h24v06.006.2016025151748.hdf
MOD11A1.A2010003.h24v06.006.2016025163706.hdf
Run Code Online (Sandbox Code Playgroud)
我想将这些文件重命名为:
modis1.hdf
modis2.hdf
modis3.hdf
Run Code Online (Sandbox Code Playgroud)
我mv为每个文件分别使用该命令来重命名它们。
我如何一次性实现这一目标?
所以,我有一个这样的目录结构:
parent/
??? sub1
? ??? source
? ??? file1
? ??? file2
??? sub2
? ??? sub2.1
? ??? source
? ??? something1
? ??? something2
??? sub3
??? sub3.1
??? sub3.1.1
??? source
??? other.zip
Run Code Online (Sandbox Code Playgroud)
我想将所有文件(具有不同文件名)从所有命名的目录移动source到其相对的上层/父目录。所以,结果应该是这样的:
parent/
??? sub1
? ??? file1
? ??? file2
? ??? source
??? sub2
? ??? sub2.1
? ??? something1
? ??? something2
? ??? source
??? sub3
??? sub3.1
??? sub3.1.1
??? other.zip
??? source
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法( …
我通过邮件收到了一些重要文件。大约有 150 个这样的文件。文件的扩展名为 zip1、zip2、zip3、zip_ 等。我只想使用单个命令将这些文件的扩展名改回 zip,以避免重命名每个文件的手动任务。
我的.png文件夹中有大约 200 个文件,命名为 -
02.png
03.png
04.png
...
201.png
Run Code Online (Sandbox Code Playgroud)
如您所见,我没有,01.png所以我想将所有文件重命名减一,使其像-
01.png
02.png
03.png
...
200.png
Run Code Online (Sandbox Code Playgroud)
是否可以通过 ubuntu 中的任何命令来完成?
以下是我没有运气尝试的命令 -
rename -n '/d{2}\.png$d{2}-1\.png/' *.png
Run Code Online (Sandbox Code Playgroud) 我使用命令rename同时重命名多个文件如下
但是我如何在同一个命令中进行多个更改
即改变1 to A和改变2 to B
* 更新 1 *
我使用以下案例进行测试,但出现错误
touch {1..100}
rename 's/0/A/; s/1/B/; s/2/C/; s/3/D/; s/4/E/; s/5/F/; s/6/G/; s/7/H/;s/8/I/; s/9/J/' *
Run Code Online (Sandbox Code Playgroud)
结果是
ls
B BE C CF D3 DG EA EH FB FI GC GJ HD I IE J9 JF
B1 BF C2 CG DA DH EB EI FC FJ GD H HE I8 IF JA JG
BA BG CA CH DB DI EC EJ FD G GE H7 HF IA …Run Code Online (Sandbox Code Playgroud)