【问题标题】:Perl script+Remove all lines except the one's starting with "Only in"Perl 脚本+删除除以“仅在”开头的行之外的所有行
【发布时间】:2013-04-18 05:28:32
【问题描述】:

我有一个文件有很多行。其中一些以“仅在”开头。所以我只想保留以“Only in”开头的行并删除其余的行。有人可以告诉我我可以使用什么正则表达式命令。

类似“ %s/!(Only in)/rm -rf that line” 抱歉在这里混淆了verilog、unix和perl。有人可以帮助我吗

【问题讨论】:

    标签: perl


    【解决方案1】:
    perl -ne 'print if /^Only in /' file
    

    另见grep

    【讨论】:

    • 在这种情况下,另请参阅perldoc -f grep :-)
    【解决方案2】:
    perl -i -ne '/^Only in/ and print' file
    

    在脚本中:

    use strict; use warnings;
    
    $INPLACE_EDIT = 1;
    
    while (<>) {
        /^Only in/ and print;
    }
    

    这两种解决方案都替换了内联,无需自己创建临时文件。

    【讨论】:

    • 我读错了还是你保留和删除了错误的行?我认为or 应该是and
    • 我如何覆盖该文件而不是打印?
    • 像这样:perl -i -ne '/^Only in/ and print' file
    • 也只是想知道反过来。我如何保留所有其他行,除非我要修改上述命令
    猜你喜欢
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 2015-10-23
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    相关资源
    最近更新 更多