2012-10-04 102 views
0

我對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個outputfiles; XX.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等,所以總是隻有兩個名稱不同但文件號相同的文件。 最簡單的方法是什麼?

+0

請解釋最後兩段,以便我們更好地理解。不清楚。 –

回答

1

可避免重複循環:

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 
0

該解決方案非常相似,你怎麼創建的文件:

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