gpt4 book ai didi

perl - 无需正则表达式的简单搜索和替换

转载 作者:行者123 更新时间:2023-11-29 08:45:19 24 4
gpt4 key购买 nike

我有一个包含各种通配符的文件,我希望能够从 (Bash) shell 脚本中替换它。在其中一个变量包含正则表达式特有的字符之前,我得到了以下效果很好的方法:

VERSION="1.0"
perl -i -pe "s/VERSION/${VERSION}/g" txtfile.txt # No problems here

APP_NAME="../../path/to/myapp"
perl -i -pe "s/APP_NAME/${APP_NAME}/g" txtfile.txt # Error!

因此,我想要一些只执行文字文本替换而不是正则表达式的东西。是否有任何使用 Perl 或其他工具的简单单行调用可以执行此操作?

最佳答案

做到这一点的“正确”方法是转义 shell 变量的内容,这样它们就不会被视为特殊的正则表达式字符。您可以在 Perl 中使用\Q 来完成此操作,如

s/APP_NAME/\Q${APP_NAME}/g

但是当从 shell 脚本调用时,反斜杠必须加倍以避免丢失,就像这样

perl -i -pe "s/APP_NAME/\\Q${APP_NAME}/g" txtfile.txt

但我建议用 Perl 编写整个脚本会容易得多

关于perl - 无需正则表达式的简单搜索和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7970702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com