gpt4 book ai didi

Perl 单行 : deleting a line with pattern matching

转载 作者:行者123 更新时间:2023-12-04 10:36:11 25 4
gpt4 key购买 nike

如果它们与可变的特定模式匹配,我试图删除文件中的一堆行。

我正在尝试删除与 abc12、abc13 等匹配的行。

我尝试编写一个 C-shell 脚本,这是代码:

    **!/bin/csh
foreach $x (12 13 14 15 16 17)
perl -ni -e 'print unless /abc$x/' filename
end**

这不起作用,但是当我使用没有变量的单行 (abc12) 时,它起作用了。

我不确定模式匹配是否有问题,或者是否还有其他我遗漏的地方。

最佳答案

是的,这是您使用单引号的事实。这意味着 $x 是按字面解释的。

当然,您这样做的效率也非常低,因为您要多次处理每个文件。

如果您想删除 abc12abc17 的行,您可以一次性完成所有操作:

perl -n -i.bak -e 'print unless m/abc1[234567]/' filename

关于Perl 单行 : deleting a line with pattern matching,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33974230/

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