Android 에뮬레이터 환경의 문자열에서 단일 필드 추출

Android 에뮬레이터 환경의 문자열에서 단일 필드 추출

나는 adb안드로이드 에뮬레이터를 실행하기 위해 쉘을 사용하고 있습니다

쿼리 출력에서 ​​필드를 추출하려고 합니다._id=number

  • "원시" 결과는 다음과 같습니다.
    Row: 9991 last_time_contacted=0, phonetic_name=NULL, custom_ringtone=NULL, contact_status_ts=NULL, pinned=0, photo_id=NULL, photo_file_id=NULL, contact_status_res_package=NULL, contact_chat_capability=NULL, contact_status_icon=NULL, display_name_alt=+90532555688, sort_key_alt=+90532555688, in_visible_group=1, starred=0, contact_status_label=NULL, phonebook_label=#, is_user_profile=0, has_phone_number=1, display_name_source=40, phonetic_name_style=0, send_to_voicemail=0, lookup=0r10070-24121C1814241820221C1A14.3789r10071-24121C1814241820221C1A14.0r10072-24121C1814241820221C1A14.0r10073-24121C1814241820221C1A14.0r10074-24121C1814241820221C1A14.0r10075-24121C1814241820221C1A14.0r10078-24121C1814241820221C1A14.0r10082-24121C1814241820221C1A14.0r10083-24121C1814241820221C1A14.0r10084-24121C1814241820221C1A14.0r10085-24121C1814241820221C1A14.0r10086-24121C1814241820221C1A14.0r10087-24121C1814241820221C1A14.0r10092-24121C1814241820221C1A14.0r10094-24121C1814241820221C1A14.0r10097-24121C1814241820221C1A14, phonebook_label_alt=#, contact_last_updated_timestamp=1612984348874, photo_uri=NULL, phonebook_bucket=213, contact_status=NULL, display_name=+90532555688, sort_key=+90532555688, photo_thumb_uri=NULL, contact_presence=NULL, in_default_directory=1, times_contacted=0, _id=10097, name_raw_contact_id=10070, phonebook_bucket_alt=213
    
  • _id=10097위 출력에서 ​​문자열을 추출 하고 싶습니다 .
  • 지금까지 내 시도는 다음과 같습니다.
    content query --uri content://com.android.contacts/contacts | grep "+9053158888" |   awk -F'[,,= ]' '{cmd="content delete --uri content://com.android.contacts/contacts/"$(NF-3);system(cmd)}'
    

그러나 문자열을 찾을 수 없습니다.

답변1

휴대용 솔루션:

$ grep -o "[[:blank:]]\+_id=[^,]*" | sed 's/^ //'
_id=10097

당신이 가지고 있다면GNU grep사용 가능lookbehind assertion:

$ grep -Po "(?<=[^a-z])_id=[^,]*"
_id=10097

관련 정보