gpt4 book ai didi

regex - 为什么我的Perl单线报告 “Bareword found where operator expected”?

转载 作者:行者123 更新时间:2023-12-03 08:13:00 24 4
gpt4 key购买 nike

我想将块大小转换为MB。我在替换中使用了/e选项。当我在替换部分中添加起始MB时,它给了我错误。

例如:

这有效。

 echo "16777216 SELECT" |perl -lane 's#(\d+)(\s+SELECT)#$1/(1024*1024*2)#e; print'
8

这给了我错误。
echo "16777216 SELECT" |perl -lane 's#(\d+)(\s+SELECT)#$1/(1024*1024*2) MB $2#e; print'
Bareword found where operator expected at -e line 1, near ") MB"
(Missing operator before MB?)
syntax error at -e line 1, near ") MB "
Execution of -e aborted due to compilation errors.

对解决第二个问题有帮助吗?

最佳答案

/e开关将replace表达式转换为正则perl表达式。您需要引用' MB'并使用串联(.)。

's#(\d+)(\s+SELECT)#$1/(1024*1024*2) . q[ MB] . $2#e

应该管用。

关于regex - 为什么我的Perl单线报告 “Bareword found where operator expected”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3923967/

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