如何循环 gawk 命令

Sam*_*Sam 2 awk

我正在尝试使用 gawk 命令从文件中提取特定列,但我需要多次执行此操作。

GAWK -F”“ '{打印$ 2,$ 7,$ 8 $ 9}' acr30R_vs_acr30NR_ 1 .assoc.logistic >>的/ mnt / jw01-aruk home01 /项目/ jia_mtx_gwas_2016 / common_files /输出/ imputed_dataset / all_50_mi_datasets / acr30R_vs_acr30NR_combined_coefficients / acr30nr_r_logistic_ 1。文本

GAWK -F”“ '{打印$ 2,$ 7,$ 8 $ 9}' acr30R_vs_acr30NR_ 2 .assoc.logistic >>的/ mnt / jw01-aruk-home01 /项目/ jia_mtx_gwas_2016 / common_files /输出/ imputed_dataset / all_50_mi_datasets / acr30R_vs_acr30NR_combined_coefficients / acr30nr_r_logistic_ 2。文本

GAWK -F”“ '{打印$ 2,$ 7,$ 8 $ 9}' acr30R_vs_acr30NR_ 3 .assoc.logistic >>的/ mnt / jw01-aruk-home01 /项目/ jia_mtx_gwas_2016 / common_files /输出/ imputed_dataset / all_50_mi_datasets / acr30R_vs_acr30NR_combined_coefficients / acr30nr_r_logistic_ 3。文本

上面的代码是从 3 个文件中提取并打印(后缀 1 、 2 和 3 为突出显示)。我希望能够做到这一点多达 50

Ste*_*itt 5

您可以使用 shell 循环执行此操作:

for i in $(seq 1 3); do
    gawk -F" " '{print $2, $7, $8, $9}' acr30R_vs_acr30NR_${i}.assoc.logistic >>/mnt/jw01-aruk-home01/projects/jia_mtx_gwas_2016/common_files/output/imputed_dataset/all_50_mi_datasets/acr30R_vs_acr30NR_combined_coefficients/acr30nr_r_logistic_${i}.txt
done
Run Code Online (Sandbox Code Playgroud)

您可以根据需要替换第一行中的13值。注意${i}第二行(在两个地方):它们依次被序列中的每个值替换。