Форматирование текста в Adb Shell - PullRequest
0 голосов
/ 20 сентября 2019

Привет, ребята,

Хорошо, я делал некоторые вещи adb shell на окнах и застрял в точке.Вот что я делал ... Я печатал все установленные приложения на своем телефоне и получал их точный путь.

zeroltetmo:/ # pm list packages -f 
package:/system/app/FilterProvider/FilterProvider.apk=com.samsung.android.provider.filterprovider
package:/system/priv-app/CtsShimPrivPrebuilt/CtsShimPrivPrebuilt.apk=com.android.cts.priv.ctsshim
package:/system/app/YouTube/Youtube.apk=com.google.android.youtube
package:/system/app/vsimservice/vsimservice.apk=com.sec.vsimservice
package:/system/priv-app/WallpaperCropper/WallpaperCropper.apk=com.android.wallpapercropper
package:/system/framework/framework-res.apk=android
package:/system/framework/samsung-framework-res/samsung-framework-res.apk=com.samsung.android.framework.res
package:/data/app/com.whatsapp-1/base.apk=com.whatsapp
package:/data/app/ru.meefik.busybox-2/base.apk=ru.meefik.busybox
package:/data/app/com.google.android.play.games-1/base.apk=com.google.android.play.games

Но я хочу, чтобы это печатало только каталог system/app, но только до folder nameвместо полного пути.То, что я делаю, это пипсовку к grep и использование этого шаблона для получения результата.

zeroltetmo:/ # pm list packages -f | grep -o "system/app.*\/"
system/app/FilterProvider/
system/app/RootPA/
system/app/YouTube/
system/app/ClipboardSaveService/
system/app/TetheringAutomation/
system/app/GoogleExtShared/
system/app/WfdBroker/
system/app/vsimservice/
system/app/USBSettings/
system/app/EasyOneHand3/

Но проблема в этом / в конце имени папки, с которой я застрял.У меня очень ограниченные знания в grep, и поэтому я не получаю точный шаблон, поэтому кто-нибудь поможет мне с этим, пожалуйста.

Спасибо

1 Ответ

0 голосов
/ 20 сентября 2019

Вы можете отфильтровать завершающие косые черты с помощью sed следующим образом:

pm list packages -f | grep -o "system/app.*/" | sed 's,/$,,'

Объяснение команды sed:

s означает замена

, отделяет имя команды от ее аргументов - проще использовать что-то другое /, когда мы хотим заменить /

/$ - заменяемую строку.В этом случае это означает косую черту в конце строки

Строка для замены /$ пуста, потому что мы хотим удалить ее.

...