2017-06-01 4 views
0

Ich versuche, eine Zeile in einer Datei mit Regexp zu finden, und ersetzen Sie diese Zeile durch eine neue Zeile. Ich möchte dies in der Befehlszeile unter Android tun.Wie finden Sie eine Zeile, die eine Regexp enthält, und ersetzen Sie diese Zeile in einer Datei auf Android

ich dachte ich, es vi wie das mit tun könnte:

vi +"%s/ro.streaming.video.drs.*/ro.streaming.video.drs=false/g | x" | build.prop 

ersetzen Zeile enthält:

ro.streaming.video.drs = true

mit:

ro.streaming.vid eo.drs = false

Allerdings habe ich festgestellt, dass vi 1.1.6.1 in BusyBox Befehle nicht unterstützt. Eigentlich unterstützt es überhaupt nicht viel. Gibt es eine andere Möglichkeit, das gleiche auf Android zu erreichen?

Antwort

1

Haben Sie BusyBox sed versucht?

sed -i 's/ro.streaming.video.drs.*/ro.streaming.video.drs=false/g' build.prop 

Oder sogar

sed -i '/ro.streaming.video.drs/ {s/=.*$/=false/}' build.prop 
+0

Dies funktioniert. Ausgezeichnet! – JohnyTex

+0

Wird die Textcodierung beibehalten, d. H. Wenn die Datei UTF-8 ist, wird sie nach dieser Operation immer noch UTF-8 sein? – JohnyTex

+1

Ich erwarte oldschool Unix-Text-Utilities wie 'sed', um ISO-8859-1 (latin1) -Codierung anzunehmen. Das heißt, der Text, den Sie ändern, ist in ISO-8859-1 und in UTF-8 genauso codiert, und ich erwarte, dass 'sed' unübertroffene Bytes unverändert übergibt. Ich würde vorschlagen, es zu testen. – orip

Verwandte Themen