Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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_Shell - Fatal编程技术网

Bash 将文件夹中名称不同但编号相同的文件与多个文件连接在一起

Bash 将文件夹中名称不同但编号相同的文件与多个文件连接在一起,bash,shell,Bash,Shell,我对Shell/Bash非常陌生,但我想用它来建立一个用于某些分析的管道。我使用bash生成了多个文件,如下所示: for i in {1..10}; do sim XX.in.$i.txt > XX.out.$i.txt; done; for i in {1..10}; do sim YY.in.$i.txt > YY.out.$i.txt; done; 这给了我20个输出文件;二十、 out.1.txt、XX.out.2.txt、YY.ou

我对Shell/Bash非常陌生,但我想用它来建立一个用于某些分析的管道。我使用bash生成了多个文件,如下所示:

for i in {1..10}; 
    do sim XX.in.$i.txt > XX.out.$i.txt;
    done;

for i in {1..10}; 
    do sim YY.in.$i.txt > YY.out.$i.txt;
    done;
这给了我20个输出文件;二十、 out.1.txt、XX.out.2.txt、YY.out.1.txt、YY.out.2.txt等

现在我想把XX.out.1.txt和YY.out.1.txt合并,然后再把XX.out.2.txt和YY.out.2.txt合并,所以总是只有两个名称不同但编号相同的文件。
最简单的方法是什么?

解决方案与您创建文件的方式非常相似:

for i in {1..10} ; do
    cat XX.out.$i.txt YY.out.$i.txt > concatenated.$i.txt
done

可以避免重复循环:

for i in {1..10}; do
  ( sim XX.in.${i}.txt; sim YY.in.${i}.txt ) > concatenated.${i}.txt
done
但是,如果需要保留中间文件,请执行以下操作:

for i in {1..10}; do
  sim XX.in.${i}.txt > XX.out.${i}.txt
  sim YY.in.${i}.txt > YY.out.${i}.txt
  cat XX.out.${i}.txt YY.out.${i}.txt > concatenated.${i}.txt
done

请解释最后两段以便我们更好地理解。现在还不清楚。