Como fazer o loop do comando gawk

1

Eu sou novo nisso e qualquer ajuda é muito apreciada. Eu tentei passar por consultas semelhantes que foram levantadas aqui no passado, mas eu estou achando difícil de seguir, provavelmente, porque eu sou um novato completo.

Estou tentando extrair colunas específicas de um arquivo usando o comando gawk, mas preciso fazer isso várias vezes.

gawk -F" " '{print $2, $7, $8, $9}' acr30R_vs_acr30NR_1.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_1.txt

gawk -F" " '{print $2, $7, $8, $9}' acr30R_vs_acr30NR_2.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_2.txt

gawk -F" " '{print $2, $7, $8, $9}' acr30R_vs_acr30NR_3.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_3.txt

O código acima é para extrair e imprimir a partir de 3 arquivos (com o sufixo 1, 2 e 3 como destacado). Eu quero ser capaz de fazer isso por até 50

Muito obrigado

Sam

    
por Sam 05.01.2017 / 11:10

1 resposta

5

Você pode fazer isso com um loop de 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

Você pode substituir os valores 1 e 3 conforme apropriado na primeira linha. Observe ${i} na segunda linha (em dois lugares): estes são substituídos por cada valor na sequência, por sua vez.

    
por 05.01.2017 / 11:21

Tags