bash循环中的awk命令 - 识别双引号

时间:2011-02-15 22:15:54

标签: bash awk

我使用一个简单的awk脚本来对第四列的分割中的值求和。没问题。

awk '{split($4,NM,"-");if ($10>1) {TGC+=NM[2]}}END{print TGC}'  somefile.txt

当我尝试在BASH中循环它时,它会运行,但会给出一个答案。

for i in somedir; do echo $i; awk '{split($4,NM,"-");if ($10>1) {TGC+=NM[2]}}END{print TGC}'  $i  ;done

问题在于分裂中的引号 - 我如何正确地限定它以便awk识别分裂?

干杯 斯塔特勒

1 个答案:

答案 0 :(得分:0)

我怀疑你打算让你的for循环检查somedir中的文件,而不是目录本身:

for i in somedir/*; do 
  echo "$i"
  awk '
    $10 > 1 {split($4, NM, "-"); TGC += NM[2]}
    END {print TGC}
  '  "$i"
done