我正在尝试从输入文件number-src打印10到15行号的记录。我尝试使用下面的代码但它打印所有记录而不管行号。
awk '{
count++
if ( $count >= 10 ) AND ( $count <= 15 )
{
printf "\n" $0
}
}' number_src
答案 0 :(得分:4)
awk不是bash,就像C不是bash一样,它们是独立的工具/语言,具有自己的语法和语义:
awk 'NR>=10 && NR<=15' number_src
获取Arnold Robbins的书“Effective Awk Programming”。
答案 1 :(得分:4)
脚本无法正常工作的两个问题:
&&
。count
作为变量名,而不是$count
。 这是一个工作版本:
awk '{
count++
if ( count >= 10 && count <= 15 )
{
print $0
}
}' numbers_src
正如最快的答案中所述,对于您的任务NR
,awk
- 执行相同任务的方式。
有关详细信息,请参阅有关boolean expressions和using variables的相关文档条目。