awk 解析错误 '<'操作员
我正在尝试在 .alias 文件中为 tcsh 创建一个别名。 别名是这样的:
alias do "grep -iE '<pattern>' <file> | awk '{if($2 < 0)print}'"
当我尝试运行别名时,它给我以下错误:
awk: cmd. line:1: {if( < 0.0) print}
awk: cmd. line:1: ^ parse error
知道为什么会发生这种情况吗? 谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试一下。您需要转义单引号并且不要使用任何双引号。
Give this a try. You need to escape the single quotes and don't use any double quotes.
好吧,从您提供的命令行开始是胡言乱语:
如果我将其更正为我认为您的意思,我会看到这一点:
通过这个我们可以看到为什么您会收到解析错误。在
awk
看到 $2 之前,它就被 shell 吃掉了。试试这个:我的猜测是,此时您将不会再收到解析错误。 (自然,我不能谈论剩下的内容,因为我不知道你使用什么作为输入。)
Well, to start with the command line you provide is gibberish:
If I correct it to what I think you mean, I see this:
And with this we can see why you're getting a parse error. The $2 is being eaten by the shell before
awk
ever sees it. Try this instead:My guess is that at this point you won't be getting your parse errors any longer. (I can't speak for the rest of this, naturally, since I don't know what you're using as input.)