2011-12-07 85 views
0

我遇到了使用特殊字符的问题。我解析由制表符分隔的文本文件。如果某个参数为true,我希望程序为行中的第一个单词添加“*”。GAWK使用特殊字符的脚本

if ($Var < $3) $1 = \*$1 

现在,每次我运行它,我得到的错误,它不是行结束。

回答

0

2件事情,但没有更多的上下文来测试,我们真的帮不了你很多。

  1. $Var只有当你将它设置为Var = 3时才有意义。那么我不认为gawk会评估你的$ 3到$ 3的价值。该表达式的另一端< $3将扩展到第三个字段的值。如果你从shell环境越来越$ VAR,你需要让GAWK脚本“看”这个值,即

    awk '{ ..... if ('"$Var"' < $3) $1= "*" $1 .....}

  2. 如果你想字符串文字“*”预先计划,你“再更好做$1 = "*" $1

无采样输入样本期望输出,实际输出和错误消息,我们会在这里打20个问题。如果这些评论无法解决您的问题,请编辑您的问题以包含这些项目。

P.S.欢迎来到StackOverflow,让我提醒你我们通常在这里做的三件事:1)当你得到帮助时,尝试给予它,回答你的专业领域的问题2)阅读常见问题,http://tinyurl.com/2vycnvr,3)当你看到好Q & A,使用灰色三角形http://i.imgur.com/kygEP.png对它们进行投票,因为系统的可信度基于用户通过分享知识获得的信誉。还请记住接受更好地解决您的问题的答案,如果有的话,按复选标记http://i.imgur.com/uqJeW.png