2016-04-25 7 views
0

Ich habe sehr grundlegende Kenntnisse der Bash-Skripte, aber nichts komplexes. Ich habe seit Tagen Suche/Prüfung und kann nicht die Ergebnisse, die ich brauche ...BASH SCRIPT - TRUE in FALSE für einen Schlüssel in einem Array ändern

Ich habe eine Info.plist befindet sich:/Dir1/Dir2

Im Info.plist ist ein Array : CFBundleURLTypes

In diesem Array ist ein Schlüssel: CFBundleURLIsPrivate

Und das Schlüssel ist: TRUE

<key>CFBundleURLTypes</key> 
<array> 
<dict> 
    <key>CFBundleURLIsPrivate</key> 
    <true/> 
</dict> 

ich diesen Wert auf false ändern möchten, aber meine Prüfung hat nicht w orked. Hier ist, was ich versucht habe und wenn es eine bessere Möglichkeit gibt, dies zu tun, lassen Sie es mich bitte wissen! Wenn

sed -i '' "/<key>CFBundleURLIsPrivate</{n;s/true/false/;}" Info.plist 

:

TIA
#!/bin/bash 
#Access working directory 
cd /Dir1/Dir2 
sed -i "/<key>CFBundleURLIsPrivate</{n;s/true/false/;}" Info.plist 

Antwort

2

Das sed Muster sollte jedoch gut funktionieren, auf OS X (was ich nehme an, Sie verwenden) an Ort und Stelle bearbeitet haben etwas anders getan werden Wenn Sie die '' nicht einschließen, erhalten Sie wahrscheinlich einen ungültigen Befehlsfehler.

+0

Danke für die Hilfe! Leider wirft es jetzt diesen Fehler: – thazsar

+0

Was ist der Fehler, und verwenden Sie OS X? Bitte geben Sie an, was nicht anfing. –

+0

Entschuldigung, mein Handy hat es vermasselt, bevor ich diesen Post beendet habe. Ich benutze iOS, BTW: Danke für die Hilfe! Leider wirft es jetzt diesen Fehler - sed: kann nicht lesen/ CFBundleURLIsPrivate thazsar