我不确定究竟是什么称呼它,但我已经能够用两个单行重现我的问题.
从包含以下内容的文件'test.txt'开始:
foo
Run Code Online (Sandbox Code Playgroud)
运行以下命令后(在bash中):
perl -n -e "s/(\w)oo/$1ar/; print;" test.txt
Run Code Online (Sandbox Code Playgroud)
输出是' far'
但是,当我引入一个包含替换字符串的变量时,
perl -n -e '$bar = q($1ar); s/(\w)oo/$bar/; print;' test.txt
Run Code Online (Sandbox Code Playgroud)
输出是' $1ar'.
我需要更改哪些内容,以便第二个程序也会输出' far'以及我需要学习哪些关键字才能使这个答案成为可用的?
此外,我尝试将第二个更改为s /// e,无效.
编辑:这不是我想问的问题,就在这里.
这适用于我(在bash中;您可能需要更改引号):
perl -n -e '$bar = "\${1} . ar"; s/(\w)oo/$bar/ee; print;' test.txt
Run Code Online (Sandbox Code Playgroud)
将ee替换部分作为文本字符串进行删除.见perlop(1).