2017-06-01 8 views
0

regexpを使ってファイル内の行を探して、その行を新しい行に置き換えようとしています。私はAndroid上のコマンドラインでこれをやりたいregexpを含む行を見つけて、その行をAndroidのファイルで置き換える方法

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

が含まれている行を置き換えるには:

と=真

ro.streaming.video.drsを

は、私はそれがそのようにVIを使用して行うことができると思いました。

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

関連する問題