Je veux grep le logcat adb et écrire la sortie dans un fichier texte. Si je fais juste
./adb logcat > std.txt
il écrit tout le journal dans le fichier texte et si je le fais
./adb logcat | grep ABC
il imprime toutes les lignes contenant ABC sur mon terminal. Mais maintenant, je souhaite rechercher ABC et écrire uniquement ces lignes dans un fichier texte.
./adb logcat | grep ABC > std.txt
ne fonctionne pas. Aide Plz.
Je pense qu'il y a un problème avec la mise en mémoire tampon grep. Vous pouvez essayer quelque chose comme ceci:
./adb logcat | grep --line-buffered ABC > std.txt
Ce devrait être le même problème pour le grep chaîné.
EDIT: Une question similaire peut être trouvée ici: Pourquoi aucune sortie n'est affichée lors de l'utilisation de grep deux fois? .
Cela fonctionne pour moi:
./adb logcat | grep ABC | dd of=/home/levex/dump.txt
Explication:./adb logcat
ouvre le logcat, puis il passe par un tube vers grep ABC
qui filtre les lignes vers celles contenant ABC
, puis à nouveau via un canal vers dd of=/home/levex/dump.txt
pour enfin l'imprimer dans un fichier. of=xxx
paramètre définit le fichier de sortie.
Edit: Cela semble fonctionner
./adb logcat |grep --line-buffered ABC >a.txt
Je peux vous expliquer ce qui se passe ici. J'espère que quelqu'un pourra en tirer une solution.Si vous exécutez la commande suivante dans le terminal
cat |grep "ABC"
et commencez à entrer des lignes de texte, vous pouvez voir que grep sort immédiatement toutes les lignes qui contiennent.
cat somefile.txt | grep "ABC"
imprimera toutes les lignes contenant "ABC" sur le terminal, comme prévu.
Mais si tu cours
cat |grep ABC >a.txt
et commencez à saisir du texte sur le terminal, vous pouvez voir que le fichier n’est pas écrit tant que vous n’avez pas saisi un caractère EOF (Ctrl + D) et que cat se termine.
Mais l'utilisation de --line-buffered donne la sortie de la manière attendue
cat |grep --line-buffered ABC >a.txt
Essaye ça
./adb logcat -s "ABC" > std.txt
Quelque chose comme ça peut-être à la recherche de toutes les entrées avec Word time, testapk1 et testapk2
adb logcat -v time testapk1 testapk2 *:S -d > adblogfilter.log
Essayez adb logcat | grep ABC | tee out
Enregistrer LogCat dans un fichier texte
"Pour enregistrer LogCat dans un fichier texte, ouvrez une fenêtre de terminal et tapez: adb logcat -d> logcat.txt"