Я пытаюсь получить путь к объекту для приложения телефонии на базе HFP.У нас есть скрипт с именем list-modems
, который может перечислять свойства путей к объектам.Я хочу вернуть путь к объекту, который имеет строку Powered = b'1'
, но не уверен, где эта строка будет, я думаю, что это может быть сделано с помощью sed и regex, но у меня нет существенного опыта с этим.Поэтому мне нужна помощь.Файл, о котором идет речь, имеет некоторый текст, подобный следующему:
[ /hfp/org/bluez/hci0/dev_7C_46_85_3E_36_66 ]
Interfaces = b''
Lockdown = b'0'
Online = b'0'
Features = b''
Type = b'hfp'
Powered = b'0'
Name = b'MCO'
Emergency = b'0'
[ /hfp/org/bluez/hci0/dev_D0_FC_CC_12_6D_4D ]
Interfaces = b'org.ofono.VoiceCallManager org.ofono.CallVolume org.ofono.Handsfree org.ofono.NetworkRegistration '
Lockdown = b'0'
Online = b'1'
Serial = b'D0:FC:CC:12:6D:4D'
Features = b'net '
Type = b'hfp'
Powered = b'1'
Name = b"Ak\xc4\xb1n's J7 Prime"
Emergency = b'0'
[ org.ofono.VoiceCallManager ]
EmergencyNumbers = b'08 000 999 110 112 911 118 119 '
[ org.ofono.CallVolume ]
Muted = b'0'
SpeakerVolume = b'50'
MicrophoneVolume = b'50'
[ org.ofono.Handsfree ]
DistractedDrivingReduction = b'0'
Features = b'three-way-calling echo-canceling-and-noise-reduction voice-recognition release-all-held release-specified-active-call private-chat create-multiparty hf-indicators '
EchoCancelingNoiseReduction = b'1'
BatteryChargeLevel = b'3'
InbandRinging = b'1'
VoiceRecognition = b'0'
[ org.ofono.NetworkRegistration ]
Mode = b'auto-only'
Status = b'registered'
Strength = b'40'
Name = b'vodafone TR'
[ /hfp/org/bluez/hci0/dev_D8_5B_2A_5B_7B_E6 ]
Interfaces = b''
Lockdown = b'0'
Online = b'0'
Features = b''
Type = b'hfp'
Powered = b'0'
Name = b'Samsung Galaxy S7'
Emergency = b'0'
[ /hfp/org/bluez/hci0/dev_14_5A_05_AB_66_F4 ]
Interfaces = b''
Lockdown = b'0'
Online = b'0'
Features = b''
Type = b'hfp'
Powered = b'0'
Name = b"Ekrem iPhone'u"
Emergency = b'0'
[ /phonesim ]
Interfaces = b''
Lockdown = b'0'
Online = b'0'
Features = b''
Type = b'hardware'
Powered = b'0'
Emergency = b'0'
Я хочу вернуть путь к объекту, т.е. /hfp/org/bluez/hci0/dev_D0_FC_CC_12_6D_4D
, если он имеет свойство Powered = b'1'
.Имейте в виду, что этот файл генерируется случайным образом, то есть места каждого свойства отличаются от одного прогона к другому прогону.
Пока у меня есть следующее регулярное выражение для соответствия пути объекта:
./list-modems | grep -E '/hfp/org/bluez/hci[0-9]/dev_[0-9A-F]{2}_[0-9A-F]{2}_[0-9A-F]{2}_[0-9A-F]{2}_[0-9A-F]{2}_[0-9A-F]{2}'
Любая помощь с благодарностью, как дальше решать эту проблему.Заранее спасибо
РЕДАКТИРОВАТЬ: Ожидаемый результат для этого примера (так как он имеет Powered = b'1'
):
/hfp/org/bluez/hci0/dev_D0_FC_CC_12_6D_4D