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
이를 사용하여 file
plist 유형과 바이너리인지 여부를 확인할 수 있습니다.
plutil -convert xml1 $file && sed /*whatever*/ $file && plutil -convert binary1 $file
그렇지 않으면 물론 sed
xml 파일(또는 Perl)에서 직접 사용할 수도 있습니다.