Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
Bash 合并同名文件并按顺序对其编号_Bash - Fatal编程技术网

Bash 合并同名文件并按顺序对其编号

Bash 合并同名文件并按顺序对其编号,bash,Bash,我正在使用Bash命令处理Linux集群 我有编号为1到100的目录,每个目录都包含一个名为“FILE1”的文件 如何将这些“FILE1”文件合并到单个目录中 这就是我迄今为止所尝试的 find ./*/ -iname "FILE1" -exec ln -t ./ConsolidatedFILEs/ {} + 它可以与所有同名的“FILE1”文件分开使用。此问题导致以下错误消息 ln: failed to create hard link './2/FILE1': File exists ln

我正在使用Bash命令处理Linux集群

我有编号为1到100的目录,每个目录都包含一个名为“FILE1”的文件

如何将这些“FILE1”文件合并到单个目录中

这就是我迄今为止所尝试的

find ./*/ -iname "FILE1" -exec ln -t ./ConsolidatedFILEs/ {} +
它可以与所有同名的“FILE1”文件分开使用。此问题导致以下错误消息

ln: failed to create hard link './2/FILE1': File exists
ln: failed to create hard link './3/FILE1': File exists
ln: failed to create hard link './4/FILE1': File exists
有没有一种简单的方法可以按顺序对文件编号以避免此问题?我没有找到一个足够容易理解和实施的解决方案


谢谢

这将简单地移动文件,并按顺序重命名它们

for i in {1..100}; do mv $i/FILE_1 ConsolidatedFILES/FILE_1_$i; done
但是您提到,您可能在编号方面存在差距,并且目录前缀为“IHC_”,因此这里有一些补充

for i in {1..100}; do if [ -e "IHC_$i/FILE_1" ]; then mv IHC_$i/FILE_1 ConsolidatedFILES/FILE_1_$i; fi; done

当然,如果您需要链接,可以将
mv
替换为
ln
。并将
100
替换为您期望的上限。

您是否有任何建议将此答案适用于按约定命名的目录:IHC_108、IHC_200、IHC_346。与问题中描述的目录1到100不同,我更新了它的目录格式和可能存在的差距。