在一个目录中(我在Linux中工作)我有100个名为like name_02randomnumber
e.g:
John_023338898963
MARK_022672389892
Petra_02326288918
在每个子目录中都有一个子目录,其名称类似于randomnumber_analyse
,在该子目录中是一个名为first
的文件。在最后一个子目录中,first
是一个名为first_TR_first
的文件。
所以我有100个first_TR_first
个文件。我想获取所有这些文件,重命名并将它们复制到一个文件夹中。
我要复制到的文件夹是包含100个子目录的目录中名为allfiles
的文件夹(因此该文件夹是第101个子目录)。
重命名很困难。需要将first_TR_first
个文件重命名为AAAnumber
。
e.g。
AAA1
AAA2
...
AAA56
其他44个文件需要重命名为BBBnumber
。
e.g。
BBB1
BBB2
...
BBB44
我有2个.text文件,其中包含101个子目录的目录中的列表。一个包含name_02randomnumber
子目录的56个名称,另一个包含其他44个名称。
我已经阅读了很多并尝试了很多,但我无法让它工作。有没有人知道或者我是否需要提供更多信息?
答案 0 :(得分:1)
首先,您可以使用find
查找文件:
find . -name "first_TR_first" -type f
这将列出它们所在的所有文件(和目录)。
你的其他描述都让我失望了。我想你可以保留两个计数器,一个用于AAA
个文件,一个用于BBB
个文件,但你怎么知道哪个是哪个?
在关闭之前澄清您的问题。给我们一个确切如何安排的例子。然后解释你想要什么以及它应该是什么样子。还要解释你所做的以及你尝试过的任何shell脚本或命令。
这里的人们喜欢帮助,但我们也希望看到别人做了一些工作。
当你在这里时,请注册StackOverflow并阅读一下这个网站是如何运作的。
答案 1 :(得分:0)
c=0; for i in `find . -name 'first_TR_first' -print |head -56`; do let c=c+1; cp $i allfiles/AAA$c;done
c=0; for i in `find . -name 'first_TR_first' -print |tail -44`; do let c=c+1; cp $i allfiles/BBB$c;done
这两个命令都是单行。您可能需要调整-44和-56以及c =数字以使其恰到好处。