Linux:使用AWK计算两个值之间的比率

Linux:使用AWK计算两个值之间的比率,linux,awk,syntax-error,Linux,Awk,Syntax Error,我有一个如下所示的文本文件: abcd nasj uasdy 3452 2314134 abcd efgh sdfdsf 234553 9323454 abcd asdf asdfasdf 34545 5234523 abcd sdfa sadfad 435232434 3452435 现在我尝试使用awk计算第5列和第4列之间的比率,我尝试了以下方法: BEGIN { printf "%10s %10s" "Column1:", "Ratio:%s" } { printf

我有一个如下所示的文本文件:

abcd nasj uasdy 3452 2314134
abcd efgh sdfdsf 234553 9323454
abcd asdf asdfasdf 34545 5234523
abcd sdfa sadfad 435232434 3452435
现在我尝试使用
awk
计算第5列和第4列之间的比率,我尝试了以下方法:

BEGIN { printf "%10s %10s" "Column1:", "Ratio:%s" } 
        { printf "%10s %10f"  $1, ($6)/($5) }
但我一直在说一个错误:

awk: awkRatio.awk:1: fatal: not enough arguments to satisfy format string
    `%10s %10sColumn1:'
            ^ ran out for this one

看起来您在
printf“…”
-部分后遗漏了一个逗号 尝试:


看起来您在
printf“…”
-部分后遗漏了一个逗号 尝试:

像这样的

awk 'BEGIN { printf "%10s %10s","Column1:","Ratio:\n" } file
        { printf "%10s %10f\n" ,$1, ($5/$4) }'
  Column1:    Ratio:
      abcd 670.374855
      abcd  39.749882
      abcd 151.527660
      abcd   0.007932
像这样的

awk 'BEGIN { printf "%10s %10s","Column1:","Ratio:\n" } file
        { printf "%10s %10f\n" ,$1, ($5/$4) }'
  Column1:    Ratio:
      abcd 670.374855
      abcd  39.749882
      abcd 151.527660
      abcd   0.007932

…并且应该是
($5)/($4)
真的,OP声明的第四列和第五列这仍然得到一个混乱的输出。@Jotne--是的,应该像您那样添加一个
\n
+1补偿:-)…应该是
($5)/($4)
真的,OP声明的第四列和第五列这仍然得到一个混乱的输出。@Jotne--是的,应该像你那样添加一个
\n
+1.请您赔偿:-)