Bash:从脚本中查找并替换文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bash:从脚本中查找并替换文本相关的知识,希望对你有一定的参考价值。

我需要使用bash脚本将数字修改为文件

我想删除包含dalvik.vm.heapsize=256的行,并将其替换为包含dalvik.vm.heapsize=512的新行。我不知道行号,256是ipotetic值。我如何构建一个执行此操作的脚本?

答案

使用sed命令:

sed -i -e 's/^(dalvik.vm.heapsize=).*/1512/' build.prop

该命令搜索以dalvik.vm.heapsize=开头的行,然后用=替换512之后的部分。使用正则表达式组捕获左侧部分,替换部分(1)中的1512指该组。 -i选项指示就地替换。有关详细信息,请参阅info sed

这是一个更高级的示例,考虑了可能的前导空格/制表符,并通过正则表达式列表使匹配更严格:

sed -i -e 's/^([ 	]*dalvik.vm.heapsize=)[0-9]+/1512/' build.prop

Perl更灵活。我更喜欢用它来完成更复杂的任务。然而,没有像sed用于Perl的-i选项这样简单的方法;但你可以简单地使用shell重定向,例如:

cat build.prop | 
  perl -n -e 's/^([	s]*dalvik.vm.heapsize=)d+/${1}512/; print' > build.prop

以上是关于Bash:从脚本中查找并替换文本的主要内容,如果未能解决你的问题,请参考以下文章