首页 > 解决方案 > 将正则表达式替换分配给bash中的变量的正确方法

问题描述

我正在尝试为 bash 中正则表达式替换的结果分配一个变量。例如,当我跑步时

echo $initialvar | perl -pe 's/.+(Some_Dir\/)(.+)/\2/'

我从echo. 我如何将 a 分配newvar给结果输出?

我试过了:

newvar= "$($initialvar | perl -pe 's/.+(Some_Dir\/)(.+)/\2/')"
newvar= echo $initialvar | perl -pe 's/.+(Some_Dir\/)(.+)/\2/'

但它们都不起作用

标签: bashperl

解决方案


您可以使用以下任一方法:

newvar=$(echo "$initialvar" | perl -pe 's/.+(Some_Dir\/)(.+)/\2/')
newvar=`echo "$initialvar" | perl -pe 's/.+(Some_Dir\/)(.+)/\2/'`

推荐阅读