如何更改文件夹中许多文件的名称
我有一个包含1000个文件的文件夹。
他们的名字如下
…… P1_A1 _R2 ….
…… P1_A2 _R2 ….
…… P1_A3 _R2 ….
只有中间是重要的突出显示
我在这个信息的同一文件夹中有一个密钥.txt
文件
Sample PR Col 1 1 A 1 2 1 A 2 3 1 A 3
我想检查.txt
文件并相应地更改文件名,或者在另一个文件夹中使用名称保存。 例如
.._ P1_A1_ ..
应该是sample1
因为当我查看.txt
文件时,它是
Sample PR Col 1 1 A 1
对于.._ P1_A2_ ..
应该是sample2
因为当我查看.txt
文件时,它是
Sample PR Col 2 1 A 2
如果我们可以安全地假设您的所有名称都是唯一的,我的意思是只有一个文件的名称包含_P1_A1
,只有一个文件包含_P1_A2
等,您可以这样做:
$ awk 'NR>1{print "mv *_P"$2"_"$3$4"* sample"$1}' key.txt mv *_P1_A1* sample1 mv *_P1_A2* sample2 mv *_P1_A3* sample3
Awk逐行读取其输入并将其拆分为空白字段。 所以第一个字段是$1
,第二个字段是2 $2
等。在这里,我们正在处理密钥文件并通过从文件的字段构建它来打印正确的mv
命令。
如果您确定打印的mv
命令是正确的,则可以使用以下命令运行它们:
awk 'NR>1{system("mv *_P"$2"_"$3$4"* sample"$1)}' key.txt