我希望获得一些彩色日志输出,并且不想使用多头。
我试图执行的命令是:
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
。我试图逃避它们,但这不起作用,坦率地说,我不确定这不会增加终端代码。
答案 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
移至