.txtファイルの単一の列に変数を掛けて、それを別の.txtファイルに書きたいと思います。この行でawk
私は何を見逃していますか?助けてくれてありがとう。
!/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
答え1
内部的にはawk
シェル変数に直接アクセスできず、オプションとして渡す必要があるため、awk
コマンドを次のように変更します。
awk -v SF="$SCALINGFACTOR" '{printf($1"\t"$2"\t"$3"\t"$4*SF)}'