![열에 변수를 곱하고 이를 어떻게 작성합니까? [복사]](https://linux55.com/image/61298/%EC%97%B4%EC%97%90%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EA%B3%B1%ED%95%98%EA%B3%A0%20%EC%9D%B4%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%9E%91%EC%84%B1%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
.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)}'