grep the adb logcat 并将输出写入文本文件



我想grep adb-logcat并将输出写入文本文件。如果我只是这样做:

./adb logcat > std.txt

它将整个日志写入文本文件。如果我这样做:

./adb logcat | grep ABC

它将所有包含ABC的行打印到我的终端。但现在我想搜索ABC&只将这些行写入文本文件。

此:

./adb logcat | grep ABC > std.txt

不起作用。

正确的命令是什么?

我认为grep缓冲有问题。你可以试试这样的东西:

./adb logcat | grep --line-buffered ABC > std.txt

对于链式grep来说,这应该是同样的问题。

编辑:在这里可以找到一个类似的问题:为什么两次使用grep时都没有显示输出?。

编辑:这似乎工作

 ./adb logcat |grep --line-buffered  ABC >a.txt

我可以向你解释这里发生了什么。希望有人能从中找到解决方案。如果您在终端中运行以下命令

cat |grep "ABC"

并开始输入文本行,您可以看到grep立即输出包含的任何行。

 cat somefile.txt | grep "ABC" 

将按预期将包含"ABC"的所有行打印到终端。

但是如果你运行

cat |grep ABC >a.txt

并开始在终端上输入文本,您可以看到,直到您输入EOF字符(Ctrl+D)并使cat终止,文件才被写入。

但是使用--line buffered以预期的方式输出

cat |grep --line-buffered  ABC >a.txt

这对我有效:

./adb logcat | grep ABC | dd of=/home/levex/dump.txt

解释:./adb logcat打开logcat,然后通过管道到达grep ABC,CCD_3将行过滤为包含ABC的行,然后再次通过管道到达CCD _5,最终将其打印到文件中。of=xxx参数设置输出文件。

尝试adb logcat | grep ABC | tee out

试试这个

./adb logcat -s "ABC" > std.txt

类似的东西可能会查找单词时间、testapk1和testapk2 的所有条目

adb logcat -v time testapk1 testapk2 *:S -d > adblogfilter.log 

将LogCat保存到文本文件

"要将LogCat保存到文本文件,请打开终端窗口并键入:adb-logcat-d>logcat.txt"

尝试这个

adb logcat -d -e "ABC" > std.txt

相关内容

  • 没有找到相关文章

最新更新