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

我想grep adb logcat&输出到一个文本文件。 如果我只是这样做

./adb logcat > std.txt 

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

 ./adb logcat | grep ABC 

它将包含ABC的所有行打印到我的terminal。 但是现在我想searchABC,只写这些行到一个文本文件。

 ./adb logcat | grep ABC > std.txt 

不起作用。 Plz的帮助。

Solutions Collecting From Web of "grep adb logcat并将输出写入文本文件"

我认为有一个grep缓冲的问题。 你可以尝试这样的事情:

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

链接的grep应该是同样的问题。

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

编辑:这似乎工作

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

我可以向你解释发生了什么事。 希望有人可以从中得出一个解决scheme。如果你在terminal运行下面​​的命令

 cat |grep "ABC" 

并开始input文本行,您可以看到grep立即输出包含的所有行。

  cat somefile.txt | grep "ABC" 

将按预期打印包含“ABC”的所有行到terminal。

但是,如果你跑

 cat |grep ABC >a.txt 

并开始在terminal上input文本,直到inputEOF字符(Ctrl + D)才能看到文件没有被写入,并终止猫。

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

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

这对我有用:

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

说明: ./adb logcat打开logcat,然后通过一个pipe道将grep ABC过滤到那些包含ABC的行,然后再通过pipe道dd of=/home/levex/dump.txt来最后打印它到一个文件。 of=xxx参数设置输出文件。

尝试这个

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

像这样的东西可能会寻找与时间的所有条目,testapk1和testapk2

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

尝试adb logcat | grep ABC | tee out adb logcat | grep ABC | tee out

将LogCat保存到文本文件

“要将LogCat保存到文本文件,请打开一个terminal窗口,然后键入:adb logcat -d> logcat.txt”