Android grep亚洲开发银行logcat&;将输出写入文本文件
我想grep adb logcat&将输出写入文本文件。 如果我这么做的话Android grep亚洲开发银行logcat&;将输出写入文本文件,android,file,text,grep,logcat,Android,File,Text,Grep,Logcat,我想grep adb logcat&将输出写入文本文件。 如果我这么做的话 ./adb logcat > std.txt 它将整个日志写入文本文件&如果我这样做的话 ./adb logcat | grep ABC 它将包含ABC的所有行打印到我的终端。但现在我想搜索ABC&只将这些行写入文本文件 ./adb logcat | grep ABC > std.txt 不起作用。请提供帮助。试试这个 ./adb logcat -s "ABC" > std.txt 类似这样的内
./adb logcat > std.txt
它将整个日志写入文本文件&如果我这样做的话
./adb logcat | grep ABC
它将包含ABC的所有行打印到我的终端。但现在我想搜索ABC&只将这些行写入文本文件
./adb logcat | grep ABC > std.txt
不起作用。请提供帮助。试试这个
./adb logcat -s "ABC" > std.txt
类似这样的内容可能会查找所有包含单词time、testapk1和testapk2的条目
adb logcat -v time testapk1 testapk2 *:S -d > adblogfilter.log
我认为grep缓冲有问题。您可以尝试以下方法:
./adb logcat | grep --line-buffered ABC > std.txt
对于链式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
“要将LogCat保存到文本文件,请打开终端窗口并键入:
adb logcat-d>logcat.txt“这对我来说很有用:
/adb logcat | grep ABC | dd of=/home/levex/dump.txt
说明:/adb logcat打开logcat,然后它通过一个管道进入
grep ABC
,该管道过滤包含ABC
的行,然后再次通过管道进入dd of=/home/levex/dump.txt
,最终将其打印到文件中of=xxx
参数设置输出文件。尝试adb logcat | grep ABC | tee out
尝试此操作
adb logcat -d -e "ABC" > std.txt
抱歉UdayaLakmal&svnpenn,但这不起作用。它只是将这些行写入文件:-----开始/dev/log/system------开始/dev/log/main您是否运行了生成“ABC”字符串的应用程序,我对此进行了测试,下面是我对字符串“drriveAPI”的结果adb服务器已过期。杀人…*守护进程已成功启动*-----开始于/dev/log/main------开始于/dev/log/system D/drriveAPI(27329):?D/drriveAPI(27329):URLhttp://d.com/tag/abcdef/assign? D/drriveAPI(27329):?D/drriveAPI(27329):URLhttp://d.com/tag/abcdef/assign?I 看到同样的问题了吗。如果我使用
adb logcat | grep ABC
生成字符串“XYZ”,然后使用adb logcat | grep ABC | grep XYZ
我将一无所获。我绝对确信输出行是同时包含“ABD”和“XYZ”的产品。这是怎么回事?哪个主机操作系统,哪个grep?例如,在我的OS X上使用提供的BSD grepIf,如果您使用eclipse,您可以使用特殊的“保存”按钮,该按钮正是这样做的…:菲,检查我的答案。这是一个有效的解决方案!:)谢谢你的回答。这很有道理,grep正在缓冲来自logcat的大量输出,然后再返回。因此,管道中grep之后的任何内容,只有在grep准备发出大量数据时才会接收输出。但是通过在grep中对它进行行缓冲,grep将在管道中向前过滤时发出每一行。我不确定我是如何通过不知道“-line buffered”得到的。这个答案值得更多的投票!