在窗口中使用范围和实时输出到txt文件

时间:2012-11-06 10:44:14

标签: windows grep tail

我从Server 2003运行tail和grep并且遇到了

的问题

a:搜索范围(在我正在阅读的日志文件中分隔的那条管道,例如:

|100|2012/11/04 23:18:23|error string here|service name|host name|9|0|||0|824|3132|

b:将匹配的行实时输出到文本文件

这就是我正在使用的:

tail -f 20121106.log | grep -n "|8-9|" >> output.txt

我基本上希望输出一个文本文件,它在第6个管道之后找到的是8或9,这是根据我的应用程序的错误。

如果我没有输出到txt文件并查找“| 8 |”或“| 9 |” (我不能让范围工作,所以我必须做一个或另一个)然后它在cmd提示窗口中实时正确显示它们

任何人都可以帮我这个吗?不胜感激!

干杯

的NiGe

1 个答案:

答案 0 :(得分:0)

您可以使用GNU awk执行此操作:

tail -f 20121106.log | awk -F "|" '{ for(i=7; i<=NF; i++) if ($i=="8" || $i == "9") { print NR ":" $0; next } }' >> output.txt

快速解释:

在第6个管道后循环字段,如果字段是“8”或“9”,则打印行号(NR),冒号(:)和整行({ {1}})包含匹配字段。 $0然后跳出循环以读取下一行输入。 HTH。

<强> 编辑:

next