gpt4 book ai didi

regex - 如何为 Makefile 编写 Perl 单行,以便我可以将文字\n 转换为换行符?

转载 作者:行者123 更新时间:2023-12-04 07:22:26 24 4
gpt4 key购买 nike

我需要转义\n 所以输出我真的得到换行符或制表符

$ perl -p -e 's/e/a/ge'

现在我希望每个 e 被替换为\n
$ perl -p -e 's/e/\n/ge'

但即使\n 也会给我一个错误。

这是一个简化的例子。在真正的脚本(makefile)中,我有
substitute := perl -p -e 's/@([^@]+)@/defined $$ENV{$$1} ? $$ENV{$$1} : $$1/ge'

在目标中我有一个很好的命令
$(substitute) $< > $@

如果 perl 的输入文件包含 \n在输出时,我会从字面上看到它......我想要真正的换行符。

最佳答案

删除 e修饰符和替换将正常工作:

perl -p -e 's/e/\n/g' file

来自 perldoc perlop :
e   Evaluate the right side as an expression.

UPD:如果要保留它,请将转义序列放在双引号中:
perl -p -e 's/e/"\n"/ge' file

关于regex - 如何为 Makefile 编写 Perl 单行,以便我可以将文字\n 转换为换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2827392/

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