【问题标题】:Add filter within the perl script to remove unwanted lines from the console/output在 perl 脚本中添加过滤器以从控制台/输出中删除不需要的行
【发布时间】:2015-06-19 20:35:35
【问题描述】:

基本上,我想将过滤器添加到我的 perl 脚本的输出中。此过滤器将切断与模式匹配的冗余行,“发现已关闭的作业”,并会产生干净的输出。现在我应该在哪里使用 grep 或 sed 来实现这种方法?这个过滤器应该是脚本的一部分,有助于获得干净的输出。

我打算使用下面的 sed 命令来匹配这些行并将它们从控制台输出中删除。但在实施中需要帮助 让脚本在其输出中包含来自服务器的一些冗余行。在脚本结束时,我将运行以下 sed 命令以在控制台清除脚本的输出。

"sed -i '/No Job found./d' ";

【问题讨论】:

    标签: perl sed


    【解决方案1】:

    我认为grep 在这种情况下是你的朋友。有点意思

    perl ... | grep -v "No Job found"
    

    将只打印不包含No Job found 的行

    【讨论】:

    • 现在如果我的脚本是 :#!/usr/bin/perl 使用 IO::File;打印“Hello World!\n”;打印“Hello World!\n”;打印“你好堆栈!\n”; perl ... | grep -v "你好栈!";然后它给出的错误是“String found where operator expected at clearscript.pl line 15, near "v "Hello Stack!""(你需要预先声明 v 吗?)”
    • 我不明白。您说您有一个要处理其输出的 perl 脚本?如果是这样,那么我写的是一个 bash 命令,但不是 ... 你放的是你的实际 perl 文件
    • 你的意思是如果我的perl文件是file1.pl,我应该给perl file1.pl | grep -v "No Job found" 在 file1.pl 的末尾过滤 file1.pl 的输出,然后在控制台打印它?
    • 不,您应该在运行文件时运行此命令。这意味着您可以随意制作 file1.pl,然后通过perl file1.pl | grep -v "No Job found" 从控制台运行该文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 2012-04-13
    • 1970-01-01
    相关资源
    最近更新 更多