0

私はシェル/バッシュに非常に慣れていませんが、それを使用していくつかの分析のためのパイプラインを確立したいと考えています。次のような複数のファイルを生成するために 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 個の出力ファイルが得られます。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 などを連結したいので、常に名前が異なるが同じ 2 つのファイルのみ番号。これを行う最も簡単な方法は何ですか?

4

2 に答える 2

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
于 2012-10-04T14:11:48.960 に答える
0

解決策は、ファイルの作成方法と非常によく似ています。

for i in {1..10} ; do
    cat XX.out.$i.txt YY.out.$i.txt > concatenated.$i.txt
done
于 2012-10-04T14:05:40.137 に答える