類似した文字を含むファイルをマージする

類似した文字を含むファイルをマージする

何百ものファイルを含むフォルダがあります。このファイルは、510個の遺伝子型ファイルのうち26個の環境変数のスコアファイルです。たとえば、次の例では_s2。2番目の環境変数です。_s3。3番目の環境変数などです。 _9_9番目の遺伝子型ファイルであることを示します。

lfmm_run2_9_s2.3.zscore
lfmm_run2_9_s24.3.zscore
lfmm_run2_9_s25.3.zscore
lfmm_run2_9_s26.3.zscore
lfmm_run2_9_s3.3.zscore
lfmm_run2_9_s4.3.zscore
lfmm_run2_9_s5.3.zscore
lfmm_run2_9_s6.3.zscore
lfmm_run2_9_s7.3.zscore
lfmm_run2_9_s8.3.zscore
lfmm_run2_9_s9.3.zscore
...

各環境変数の遺伝子型ファイルをマージしたいと思います。私がしていることは

cat lfmm_run2_{1..510}_s1.3.zscore > env1
cat lfmm_run2_{1..510}_s2.3.zscore > env2
cat lfmm_run2_{1..510}_s3.3.zscore > env3

ただし、26個の環境変数すべてに対して1つずつこれを行うには時間がかかります。 1つのコマンドでこれらすべてをすばやく実行する方法はありますか?

ベストアンサー1

forループを使用して、cat1から26までの各番号に対して1回、26回実行します。

for i in {1..26} ; do
    cat lfmm_run2_{1..510}_s"$i".3.zscore > env"$i"
done

おすすめ記事