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:从脚本中查找并替换文本的主要内容,如果未能解决你的问题,请参考以下文章

从 Excel 工作表中查找并替换所有文本文件中的字符串

如何用反斜杠和空格“\”替换空格,以便 bash shell 脚本可以从 .tsv 文件中读取文件名并执行 rsync 复制

Shell脚本学习指南 [ 第四章 ] 查找与替换文本处理工具

如何查找多个文件、检查重复文件并用 bash、sed 脚本替换

Bash 脚本:如何用 sed 替换 package.json 中的文本

Linux Bash - 修改从标准输出中提取的文本