Bash中的Awk数字比较

时间:2015-02-19 14:26:34

标签: bash awk

我正在尝试从输入文件number-src打印10到15行号的记录。我尝试使用下面的代码但它打印所有记录而不管行号。

awk '{
count++
if ( $count >= 10 ) AND ( $count <= 15 )
 {
  printf "\n"  $0
 }
}' number_src

2 个答案:

答案 0 :(得分:4)

awk不是bash,就像C不是bash一样,它们是独立的工具/语言,具有自己的语法和语义:

awk 'NR>=10 && NR<=15' number_src

获取Arnold Robbins的书“Effective Awk Programming”。

答案 1 :(得分:4)

脚本无法正常工作的两个问题:

  • 逻辑AND应为&&
  • 在引用时使用count作为变量名,而不是$count

这是一个工作版本:

awk '{
     count++
     if ( count >= 10  &&  count <= 15 )
     {
          print $0
     }
     }' numbers_src

正如最快的答案中所述,对于您的任务NRawk - 执行相同任务的方式。

有关详细信息,请参阅有关boolean expressionsusing variables的相关文档条目。

相关问题