gpt4 book ai didi

regex - perl 搜索和追加

转载 作者:行者123 更新时间:2023-12-04 03:16:47 25 4
gpt4 key购买 nike

我正在尝试编写一个 perl 单行程序来搜索字符串 q(abc* 并在找到该字符串时附加到它。我的输入文件有很多这样的东西:

q(abc0x[...
q(abc1x[...
q(abc2x[...
q(abc0y[...

我希望输出为:

q(abc0x_str[...
q(abc1x_str[...
q(abc2x_str[...
q(abc0y_str[...

我已经试过了:

perl -pi -e "s/(q\((abc\S+)\[)/\$1_str\1/" file

但是当我键入 echo $1 并预先挂起 _str 而不是追加时,$1 反向引用似乎从我的环境中获取值它,给出这个输出:

-project_strq(abc0x[...

$1 在我的环境中恰好是“-project”。

或者,我试过:

perl -pi -e "s/(q\(abc\S+)\[)/_str\1/" file

但这里的输出看起来像这样,而不是带有前置的 _str:

_strq(abc0x[...

这两种输出都不是我所期望的。有什么建议吗?

最佳答案

这会产生您想要的输出:

perl -pi -e 's/(q\(abc\S+)\[/$1_str[/' file

如您所见,shell 将 $1 解释为 shell 变量。您需要使用单引号来防止 shell 将其视为变量。

您最初发布的单行代码为我生成了一个错误(我看到您现在已经编辑了您的原始代码)。

关于regex - perl 搜索和追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40310613/

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