Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android上查找包含regexp的行,并在文件中替换该行_Android_Replace_Vi - Fatal编程技术网

如何在Android上查找包含regexp的行,并在文件中替换该行

如何在Android上查找包含regexp的行,并在文件中替换该行,android,replace,vi,Android,Replace,Vi,我试图使用regexp在文件中查找一行,并用新行替换该行。我想在Android上的命令行上执行此操作 我想我可以用vi这样做: vi +"%s/ro.streaming.video.drs.*/ro.streaming.video.drs=false/g | x" | build.prop 替换包含以下内容的行: ro.streaming.video.drs=true 与: ro.streaming.video.drs=false 但是,我注意到BusyBox中的vi 1.1.6.1不支持命令

我试图使用regexp在文件中查找一行,并用新行替换该行。我想在Android上的命令行上执行此操作

我想我可以用vi这样做:

vi +"%s/ro.streaming.video.drs.*/ro.streaming.video.drs=false/g | x" | build.prop
替换包含以下内容的行:

ro.streaming.video.drs=true

与:

ro.streaming.video.drs=false


但是,我注意到BusyBox中的vi 1.1.6.1不支持命令。实际上,它一点都不支持。有没有其他方法可以在Android上实现同样的功能?

您尝试过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

这是否会保留文本编码,即,如果文件是UTF-8,那么在执行此操作后它是否仍然是UTF-8?我希望像
sed
这样的老式unix文本实用程序采用ISO-8859-1(拉丁文1)编码。这就是说,您正在更改的文本在ISO-8859-1和UTF-8中的编码方式相同,我确实希望
sed
按原样传递不匹配的字节。我建议测试一下。