38

adb logcatをgrepして、出力をテキストファイルに書き込みたい。私がするだけなら

./adb logcat > std.txt

ログ全体をテキストファイルに書き込みます。

./adb logcat | grep ABC

ABCを含むすべての行を端末に出力します。しかし今、私はABCを検索し、これらの行だけをテキストファイルに書き込みたいと思います。

./adb logcat | grep ABC > std.txt

動作しません。Plzヘルプ。

4

8 に答える 8

56

grepのバッファリングに問題があると思います。あなたはこのようなことを試すことができます:

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

連鎖grepでも同じ問題になるはずです。

編集:同様の質問がここにあります:grepを2回使用すると出力が表示されないのはなぜですか?

于 2013-08-09T12:06:55.757 に答える
4

編集:これはうまくいくようです

 ./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
于 2013-08-09T13:34:53.450 に答える
4

これは私のために働いています:

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

説明: ./adb logcat logcatを開き、次に、grep ABCを含む行に行をフィルター処理するパイプを通過ABCし、次にパイプを通過して、dd of=/home/levex/dump.txt最終的にファイルに出力します。 of=xxxパラメータは出力ファイルを設定します。

于 2013-08-15T13:53:01.620 に答える
3

試すadb logcat | grep ABC | tee out

于 2013-08-16T08:58:16.370 に答える
1

これを試して

./adb logcat -s "ABC" > std.txt
于 2013-02-05T06:58:14.963 に答える
1

そのようなものは、単語時間、testapk1、testapk2のすべてのエントリを探している可能性があります

adb logcat -v time testapk1 testapk2 *:S -d > adblogfilter.log 
于 2013-06-04T19:33:13.617 に答える
1

LogCatをテキストファイルに保存

「LogCatをテキストファイルに保存するには、ターミナルウィンドウを開き、次のように入力します:adb logcat-d>logcat.txt」

于 2013-08-12T14:24:50.340 に答える
0

これを試して

adb logcat -d -e "ABC" > std.txt
于 2020-12-26T02:07:13.810 に答える