gpt4 book ai didi

regex - 如何将 BASH 变量插入到 PERL 正则表达式替换中?

转载 作者:行者123 更新时间:2023-11-29 09:08:30 25 4
gpt4 key购买 nike

我想用数组中的字符串替换一些文本的中间部分。

#!/bin/bash

array=(1 2 3 4 5 6)

for i in "${array[@]}"; do
# doesn't work
echo "some text" | perl -pe 's|(some).*(text)|\1$i\2|'
done

我正在使用 perl 正则表达式而不是 sed,因为它更容易支持非贪婪匹配。在其中获取 $i 的值的正确语法是什么?

最佳答案

只需将正则表达式周围的单引号替换为双引号即可。

#!/bin/bash

array=(1 2 3 4 5 6)

for i in "${array[@]}"; do
echo "some text" | perl -pe "s|(some).*(text)|\1$i\2|"
done

单引号不展开变量。

关于regex - 如何将 BASH 变量插入到 PERL 正则表达式替换中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30214560/

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