我有一个脚本,该脚本在一行中流式传输一个模式(没有换行符)。我想grep
stock_ticker
在那一行中找到它后立即将其输出。现在,脚本永无止境,并且实质上无限期地循环。
我认为我可以如何解决这个问题的另一种方法可能是将输入流分割成几行,然后将其通过管道传递给grep。据我所知,你可以grep
输出-但是按我的理解,我觉得一切从grep
,sed
,awk
通过读行线。
无论如何,我可以更改此行为并对此进行处理?
./a.out | grep 'stock_ticker'
当前输出Memory exhausted
。这是因为grep在分散输出之前逐行读取。我想改变这种行为。有什么想法吗?
没有换行符,grep会缓冲所有输入,因此它可以向您显示字符串出现的“行”。
两个问题:
如果不需要相邻内容的上下文,并且标记之间有空格分隔,只需使用tr即可将空格转换为换行符:
./a.out | tr ' ' '\n' | grep 'stock_ticker'
如果需要相邻的内容,只需添加选项之一-C
-A
或添加-B
到grep命令。这样一来,grep就可以在搜索模式中的股票行情指示器之前和/或之后显示“行”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句