0

我在使用特殊字符时遇到问题。我正在解析一个由制表符分隔的文本文件。如果某个参数为真,我想让程序在该行的第一个单词中添加一个“*”。

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

现在每次我运行它时,我都会得到错误,它不是行尾。

4

1 回答 1

0

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

  1. $Var仅当您将其设置为 Var=3 时才有意义。那么我认为 gawk 不会将您的 3 美元评估为 3 美元的价值。该表达式的另一侧< $3将扩展为第三个字段的值。如果您从 shell 环境中获取 $Var,则需要让 gawk 脚本“看到”该值,即

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

  2. 如果你想要字符串文字 '*' 预先挂起,你最好这样做$1 = "*" $1

如果没有示例输入、示例预期输出、实际输出和错误消息,我们将在这里玩 20 个问题。如果这些评论不能解决您的问题,请在上面编辑您的问题以包含这些项目。

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

于 2011-12-07T17:37:13.710 回答