grep the ADB logcat & write the output to a text file
Chcę grep logcat adb i zapisać wyjście do pliku tekstowego. If I just do
./adb logcat > std.txt
Zapisuje cały dziennik do pliku tekstowego i jeśli to zrobię
./adb logcat | grep ABC
Wyświetla wszystkie linie zawierające ABC do mojego terminala. Ale teraz chcę wyszukać ABC i zapisać tylko te linie do pliku tekstowego.
./adb logcat | grep ABC > std.txt
Nie działa. Plz pomocy. 7 answers
Myślę, że jest problem z buforowaniem grepa. Możesz spróbować czegoś takiego:
./adb logcat | grep --line-buffered ABC > std.txt
To powinien być ten sam problem dla przykutego grepa.
EDIT: podobne pytanie można znaleźć tutaj: Dlaczego nie jest wyświetlane wyjście, gdy używa się grepa dwa razy?.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:00:27
To działa dla mnie:
./adb logcat | grep ABC | dd of=/home/levex/dump.txt
Wyjaśnienie: ./adb logcat
otwiera logcat, a następnie przechodzi przez rurę do grep ABC
, która filtruje linie do tych zawierających ABC
, a następnie ponownie przez rurę do dd of=/home/levex/dump.txt
, aby w końcu wydrukować go do pliku. of=xxx
parametr ustawia plik wyjściowy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-15 13:58:46
Edytuj: To chyba działa
./adb logcat |grep --line-buffered ABC >a.txt
Mogę ci wyjaśnić, co się dzieje heres. Mam nadzieję, że ktoś wyciągnie z tego jakieś rozwiązanie.Jeśli uruchomisz następujące polecenie w terminalu
cat |grep "ABC"
I zacznij wpisywać wiersze tekstu, widać, że grep natychmiast wyświetla wszystkie wiersze, które zawierają.
cat somefile.txt | grep "ABC"
Wyświetli wszystkie linie zawierające " ABC " do terminala, zgodnie z oczekiwaniami.
But if you run
cat |grep ABC >a.txt
I zacznij wpisywać tekst na terminalu, możesz zobaczyć że plik nie zostanie zapisany, dopóki nie wpiszesz znaku EOF (Ctrl+ D) i nie zakończysz programu cat.
Ale użycie --line-bufored daje wyjście w oczekiwany sposób
cat |grep --line-buffered ABC >a.txt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-09 13:34:53
Spróbuj tego
./adb logcat -s "ABC" > std.txt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-05 06:58:34
Coś takiego może Szukam wszystkich wpisów ze słowem czas, testapk1 i testapk2
adb logcat -v time testapk1 testapk2 *:S -d > adblogfilter.log
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-04 19:33:13
Try adb logcat | grep ABC | tee out
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-16 08:58:16
Zapisz LogCat Do Pliku Tekstowego
" aby zapisać LogCat do pliku tekstowego Otwórz okno terminala i wpisz: adb logcat - d > logcat.txt "
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-11 19:57:41