向 Grep 命令添加换行符

向 Grep 命令添加换行符

如何添加一些换行符?我希望它显示OpenFin类别,有一个换行符,Chrome类别,另一个换行符,然后memoryInfo

这是我到目前为止所拥有的:

cat LoginExInternal.txt | grep OpenFin >> LoginExcInternal.txt | echo $'\r' 
&& cat LoginExInternal.txt | grep Chrome >> LoginExcInternal.txt | echo $'\r' 
&& cat MemoryUnderThreshold.txt | grep memoryInfo:jsHeapSizeLimit:1 >> LoginExcInternal.txt | echo $'\r'

但我似乎无法将其放入新行,这echo $'\r'似乎不起作用。请告诉我如何修改才能使其正常工作。

答案1

您不需要使用catwith grep,并且可以将命令分组以仅将重定向放置在那里一次:

{
  grep OpenFin < LoginExInternal.txt && echo 
  grep Chrome < LoginExInternal.txt && echo
  grep memoryInfo:jsHeapSizeLimit:1 < MemoryUnderThreshold.txt && echo
} >> LoginExcInternal.txt

另请注意,如果您使用 加入所有命令&&,则失败的 grep 将停止以下命令echo,而且还会停止其余命令grep的运行。这可能是也可能不是您想要的。如上所述使用grep && echogrep在任何情况下运行所有​​ s,但仅在匹配某些内容时打印额外的换行符grep

$'\r'另外,我不太确定 cygwin 中如何处理换行符,也就是说,是否需要显式打印出回车符。

答案2

这似乎有效。我不确定是否有更简单的方法来做到这一点:

grep OpenFin LoginExInternal.txt >> LoginExcInternal.txt && 
echo $'\r' >> LoginExcInternal.txt && 
grep Chrome LoginExInternal.txt >> LoginExcInternal.txt &&
echo $'\r' >> LoginExcInternal.txt &&
grep MemoryUnderThreshold.txt memoryInfo:jsHeapSizeLimit:1 >> LoginExcInternal.txt

相关内容