表达式中的语法错误(错误标记为“i=2”)
for (( int i="$4"; i<"$5"; i++ ))
do
awk "NR==i{print}" $1
done
我希望 awk 打印出 $4 到 $5 之间的记录(这将是一个范围,即 4-9 )
无法弄清楚为什么我会收到此错误?
Syntax error in expression ( error token is "i=2" )
for (( int i="$4"; i<"$5"; i++ ))
do
awk "NR==i{print}" $1
done
I want awk to print out the records between $4 and $5 ( itll be a range, ie 4-9 )
cant figure out why im getting this error?
Syntax error in expression ( error token is "i=2" )
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这不是 C。您不需要声明计数器的类型。
This is not C. You don't need to declare the type of the counter.
awk
对 shell 变量i
一无所知,首先,为什么不使用:shell 本身应该扩展
$
> 变量,因为它们位于双引号内而不是单引号内(这当然取决于 shell,但涵盖了最流行的变量,主要是bash
)。您可以在下面的文字记录中看到这一点:
awk
doesn't know anything about the shell variablei
, for a start, Why would you just not use:The shell itself should expand the
$
variables since they're within double quotes rather than single quotes (this is shell-dependent of course but covers the most popular ones, primarlybash
).You can see this in action in the following transcript:
这里正确的语法:
Here proper syntax: