动态替换Perl
动态替换Perl
这个问题已经有了解答:
我想要以编程方式替换小占位符为静态内容,比如用户名或者工作路径。
在Bash中有没有可能像这样动态地执行我的perl替换的状态:
GROUPNAME="$(id -g -n $USER)" perl -pi -e 's/\(PLACEHOLDER\)/' + "$GROUPNAME" + '/g' filepath/file
如果我还能适应这个动态行为以替换占位符就会非常好。但首先要做的是如何连接这些字符串?
admin 更改状态以发布 2023年5月24日
你本来想用
GROUPNAME="$(id -g -n $USER)" perl -i -pe's/\(PLACEHOLDER\)/'"$GROUPNAME"'/g' filepath/file
但是生成Perl代码是非常容易出错的,没有必要这样做。可以使用下列方法之一替代:
export GROUPNAME="$(id -g -n $USER)" perl -i -pe's/\(PLACEHOLDER\)/$ENV{GROUPNAME}/g' filepath/file
或者
GROUPNAME="$(id -g -n $USER)" perl -i -pe's/\(PLACEHOLDER\)/$ENV{GROUPNAME}/g' filepath/file