grep ADB logcat и записать вывод в текстовый файл

Я хочу grep ADB logcat и записать вывод в текстовый файл. Если я просто сделаю

./adb logcat > std.txt

он записывает весь журнал в текстовый файл и если я делаю

./adb logcat | grep ABC

он печатает все строки, содержащие ABC, на мой терминал. Но теперь я хочу найти ABC и записать только эти строки в текстовый файл.

./adb logcat | grep ABC > std.txt

не работает. Помощь Plz.

7 ответов


Я думаю, что есть проблема с буферизацией grep. Вы можете попробовать что-то вроде этого:

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

это должна быть та же проблема для прикованного grep.

EDIT: аналогичный вопрос можно найти здесь:почему при использовании grep дважды не отображается вывод?.


это работает для меня:

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

объяснение: ./adb logcat открывает logcat, а затем он проходит по трубе в grep ABC какие фильтры строк, содержащих ABC, а потом опять через трубу в dd of=/home/levex/dump.txt чтобы, наконец, распечатать его в файл.


изменить: Кажется, это работает

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

Я могу объяснить вам, что происходит здесь. Надеюсь, кто-то сможет извлечь из этого решение.Если вы запустите следующую команду в terminal

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 -s "ABC" > std.txt

что-то вроде этого, возможно, ищет все записи со временем word, testapk1 и testapk2

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

попробовать adb logcat | grep ABC | tee out


Сохранить LogCat В Текстовый Файл

" для сохранения LogCat в текстовый файл откройте окно терминала и введите: adb logcat-d > logcat.txt"