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

用户名

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

#!/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 regex而不是sed,因为它提供了更轻松的非贪婪匹配支持。在其中获取$ i的值的正确语法是什么?

N

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

#!/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

单引号不会扩展变量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将变量插值到Perl 6正则表达式字符类中?

多行正则表达式如何替换bash并存储在变量中?

如何将流计数器插入正则表达式中?

如何将正则表达式替换中捕获的模式转换为大写?

文件中的文本被正则表达式替换。如何将更改写入文件?

Javascript Regex:如何将变量放入正则表达式中?

如何将split与存储在变量中的正则表达式一起使用?

如何将正则表达式的不同结果(使用grep?)检索到变量中?

如何将正则表达式捕获组存储为vim脚本中的变量?

如何将变量插入'then'表达式中

将变量插入正则表达式

将变量插入正则表达式

Perl中的计算正则表达式替换

正则表达式替换中的Perl尖括号

Perl中替换正则表达式的意外结果

Perl正则表达式中的替换命令?

如何避免在Perl正则表达式中进行变量替换?

如何将资源中的正则表达式模式插入到 string.Format 中?

如何将正则表达式缩写引入 Lex 中的正则表达式?

如何用变量替换vim正则表达式

在正则表达式中插入变量

如何在bash中使用正则表达式变量进行查找和替换命令?

如何将字符<和>正则表达式替换为&lt; 和&gt; 在标签<code> </ code>中?

正则表达式中的Perl变量消除歧义

Perl 正则表达式选项存储在变量中

Bash:替换中的正则表达式

在Perl正则表达式替换命令行中使用bash变量名作为匹配替换

如何将正则表达式作为参数传递给Perl 6中的子例程

如何使用正则表达式将变量替换为计算字符串中的值?