plist의 내용을 인쇄하기 위한 쉘 유틸리티가 있습니까? 탈옥된 iOS 기기를 선호하시나요?

plist의 내용을 인쇄하기 위한 쉘 유틸리티가 있습니까? 탈옥된 iOS 기기를 선호하시나요?

plist 파일에서 실제 텍스트를 인쇄하는 도구가 필요합니다(plutil은 형식을 변경하고 cat은 횡설수설을 인쇄하며 iOS에는 기본 명령이 없습니다). 스크립트에 있어야 하므로 텍스트 편집기가 작동하지 않습니다.

이것이 내가 필요한 이유입니다:

apps="$(find /var/mobile/Applications -name "Info.plist" | grep "\.app/Info\.plist")"
mkdir /var/mobile/rmnames
for app in $apps; do 
    newplist="$(echo $app | sed 's|/var/mobile/Applications/[^/]*/||' | sed 's|\.app/Info\.plist|.txt|')"
    #1# $app | sed 's|<string>#2#</string>|<string></string>|' > "/var/mobile/rmnames/"$newplist
    mv "/var/mobile/rmnames/"$newplist $app 
done
rm -rf /var/mobile/rmnames

제가 하고 싶은 일은 수동으로 할 필요 없이 스프링보드에서 모든 앱 스토어 앱 이름을 삭제하는 것입니다. 여기서 "#1#"은 plist 인쇄 유틸리티이고 "#2#"은 CFBundleDisplayName을 찾는 데 사용되는 정규식입니다.

그리고 왜 제가 Cydia를 수정하지 않는지 궁금하시다면 저는 모바일 기판을 경멸합니다.. 하하, 미리 감사드립니다!

내가 의미하는 횡설수설의 예:

mobile:Flixster.app> cat Info.plist
bplist00?#


!"#$%&'()*+,(4567(9:;    <=>CDEVWXY[\]^_bc_CFBundleSignatureYDTSDKName_DTPlatformBuild_BuildMachineOSBuil  d_UIPrerenderedIcon_MedialetsUseTestServers_CFShortVersionString_CFBundleExecuta  ble_CFBundleIconFiles_LSRequiresIPhoneOS]NSMainNibFile^MedialetsAppID_CFBundlePackageTypeZDTSDKBuild_UIRequiresPersistentWiFi\DTXcodeBuild_NSMainNibFile~ipad_CFBundleResourceSpecificationZDTCompiler_CFBundleDisplayName_%UISupportedInterfaceOrientations~ipad_CFBundleDevelopmentRegion^DTPlatformName_CFBundleURLTypes\CFBundleName_CFBundleVersion_DTPlatformVersion_CFBundleSupportedPlatformsWDTXcode_FLXReleaseCandidate_MinimumOSVersion_CFBundleIdentifier^UIDeviceFamily_CFBundleIconFile_CFBundleInfoDictionaryVersionT????[iphoneos5.0U9A334V10K549 T5.20XFlixster?-./012XIcon.png[[email protected][Icon-72.png_Icon-Small-50.png^[email protected]    ZMainWindow_(83e69fab771f958d7de70ada6ba32ff334b9eec1TAPPLU9A334    U4C199_MainWindow-iPad_ResourceRules.plist_com.apple.compilers.llvmgcc42P??@AB_#UIInterfaceOrientationLandscapeLeft_$UIInterfaceOrientationLandscapeRight_UIInterfaceOrientationPortrait_(UIInterfaceOrientationPortraitUpsideDownUen_USXiphoneos?F?GHIJ_CFBundleURLName_CFBundleURLSchemes_com.jeffreygrossman.moviesapp?  KLMNOPQRSTUXflixster\fb2558160538\fb2373897986\fb2446021478]fb55312797380\fb5769  273609\fb2352444510\fb2451978556]fb16478767641]fb87604592406\fb2532675812XFlixst  erT5.20S5.0?ZXiPhoneOST0420R10S4.0_com.jeffreygrossman.moviesapp? `aXIcon.pngS6.Qeo??????(7MXs??????)<I[o???????%+2349BIR^j~?????????? 238^????????.:CP]┘│??????????????!␍%└⎺␉␋┌␊:F┌␋│⎽├␊⎼.▒⎻⎻> 

답변1

이를 사용하여 fileplist 유형과 바이너리인지 여부를 확인할 수 있습니다.

 plutil -convert xml1 $file && sed /*whatever*/  $file && plutil -convert binary1 $file

그렇지 않으면 물론 sedxml 파일(또는 Perl)에서 직접 사용할 수도 있습니다.

관련 정보