2017-06-01 50 views
0

我正在嘗試使用regexp在文件中查找行,並用新行替換該行。我想在Android上的命令行上執行此操作。如何找到包含正則表達式的行,並在Android上的文件中替換該行

我想我可以用它VI這樣做:

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

要更換線路包含:

ro.streaming.video.drs =真

有:

ro.streaming.vid eo.drs = false

但是,我注意到BusyBox中的vi 1.1.6.1不支持命令。其實它根本不支持太多。有另一種方式可以在Android上實現同樣的功能嗎?

回答

1

你試過BusyBox的sed嗎?

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

甚至

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

這工作。優秀! – JohnyTex

+0

這將保留文本編碼,即如果文件是UTF-8,在此操作之後它仍然是UTF-8嗎? – JohnyTex

+1

我期望'sed'這樣的oldschool unix文本工具可以採用ISO-8859-1(latin1)編碼。也就是說,您正在更改的文本在ISO-8859-1和UTF-8中的編碼方式相同,我確實希望'sed'能夠按原樣傳遞不匹配的字節。我會建議測試它。 – orip

相關問題