複数のファイルに条件がある場合は、特定の列をファイルとして印刷するにはどうすればよいですか?

複数のファイルに条件がある場合は、特定の列をファイルとして印刷するにはどうすればよいですか?

次のような多くのファイル(合計2181ファイル、anacovis2_1_summary_betai_reg.outanacovis2_2181_summary_betai_reg.out)があります。

anacovis2_2_summary_betai_reg.out
anacovis2_3_summary_betai_reg.out
anacovis2_4_summary_betai_reg.out
anacovis2_5_summary_betai_reg.out
anacovis2_6_summary_betai_reg.out
anacovis2_7_summary_betai_reg.out
.
.
.
anacovis2_2179_summary_betai_reg.out
anacovis2_2180_summary_betai_reg.out
anacovis2_2181_summary_betai_reg.out

各ファイルは次のようになります。

 COVARIABLE MRK M_Pearson SD_Pearson BF(dB) Beta_is SD_Beta_is eBPis
  1       1    -0.00974041     0.21914544   -10.86437924    -0.00058189     0.00694111     0.03003007
  1       2     0.08603974     0.19711939    -1.27963044     0.00381909     0.00953539     0.16192245
  1       3    -0.02912035     0.20260353   -12.60498743    -0.00146066     0.00633105     0.08749265

各ファイル(1〜2181)を繰り返し、最初の列(COVARIABLE)が「1」の場合は、最後の列だけを印刷して別のファイルに保存したいと思います(各ファイルの出力を別々の文書)。

このタスクawkや他の提案はどうすればよいですか?

ベストアンサー1

これはawk

awk '($1==1){print $NF>FILENAME"_new"}' anacovis2_{1..2181}_summary_betai_reg.out

最初の列が1に等しいことを確認してから、$1==1最後の列を$NFFILENAME形式は同じですが、で終わる新しいファイルに印刷するので、_new出力ファイルはFILENAME_new

私たちが使用しているすべての2181ファイルを読むには拡張パラメータを中括弧で囲みます。ここで。

おすすめ記事