Como multiplicar uma coluna por uma variável e escrever? [duplicado]

0

Eu gostaria de multiplicar uma única coluna em um arquivo .txt por uma variável e depois gravar em outro arquivo .txt. O que estou faltando na linha awk ? Agradecemos qualquer ajuda antecipadamente.

!/bin/bash

FILES=/path/to/files
for f in ${FILES}
do
    echo $f
    wc -l $f
    B=10000000
    TOTALLINES="$(wc -l $f | cut -f1 -d' ')"
    echo "TOTALLINES: ${TOTALLINES}"
    SCALINGFACTOR=$(echo "100000000 / $TOTALLINES" | bc -l)
    echo "scaling_factor:  ${SCALINGFACTOR}"
    awk '{printf($1"\t"$2"\t"$3"\t"$4 * "${SCALINGFACTOR}")}' $f"_prepped.txt" > $f"_normalized.txt"

done
    
por Stephen 24.02.2015 / 22:46

1 resposta

1

Dentro de awk você não tem acesso direto às variáveis do shell, você precisa passá-las como opções, então mude o comando awk para algo como:

awk -v SF="$SCALINGFACTOR" '{printf($1"\t"$2"\t"$3"\t"$4*SF)}'
    
por 24.02.2015 / 23:01