awk:在第1行

时间:2015-07-09 20:38:10

标签: macos awk terminal-color

我希望获得一些彩色日志输出,并且不想使用多头。

我试图执行的命令是:

tail -100f some_file.log | awk '/INFO/ {print "\033[32m" $0 "\033[39m"} /Exception/ {print "\033[31m" $0"\033[39m"}'

但我收到了错误:

awk: syntax error at source line 1
 context is
     >>> /INFO <<< / {print "\033[32m" $0 "\033[39m"} /Exception/ {print "\033[31m" $0"\033[39m"}
    4 missing ]'s
awk: bailing out at source line 1

我完全不专业的猜测是,由于某种原因,它认为终端代码应该关闭]'s。我试图逃避它们,但这不起作用,坦率地说,我不确定这不会增加终端代码。

3 个答案:

答案 0 :(得分:2)

  

awk:在源头1处拯救

如果您使用的是Solaris/SunOS系统,请将此脚本开头的awk更改为/usr/xpg4/bin/awk/usr/xpg6/bin/awk,或nawk

答案 1 :(得分:1)

安装并切换到gawk解决了问题。感谢所有有帮助回复的人。

答案 2 :(得分:0)

来自 Effective Awk Programming, Edition 4

  

其他任何名字的玫瑰 awk语言已经发展了多年。附录A中提供了完整的详细信息。   [awk语言],第439页。本书中所描述的语言通常是   称为“新awk”。以此类推,awk的原始版本是   称为“旧awk”。

     

在大多数当前系统上,当您运行   awk实用程序,您会获得一些新版本的awk。 4 如果您的系统是   标准awk是旧的awk,如果您看到   尝试测试程序:

$ awk 1 /dev/null
error awk: syntax error near line 1
error awk: bailing out near line 1
     

在这种情况下,您   应该找到新awk的版本,或者只是安装gawk!

     

穿越   这本书,每当我们提到一种语言功能时,   在POSIX awk的任何完整实现中都可用,我们只需使用   术语awk。当指代特定于GNU的功能时   实施中,我们使用术语gawk。

     

4 只有Solaris系统仍将旧的awk用于默认的awk实用程序。在这些系统上的/usr/xpg6/bin中存在着更现代的awk。

此答案已从Serching a pattern using awk and print next 15 lines from a log file

移至