小编NEX*_*NEX的帖子

如何阻止此Perl命令一遍又一遍地打印XML声明?

我在Red Hat Linux中运行以下命令:

perl -ne '
    print "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
    while(/(<PRINTKIT FORM_ID=\"PP_WELCOMEKIT\">.*?<\/PRINTKIT>)/g){
        print "<sf><XDF>$1</XDF></sf>"
    };
' $1 > $2.$TS2.postscrub
Run Code Online (Sandbox Code Playgroud)

$2是一个文件名,$TS2只是一个日期.

目前它打印出100行

<?xml version=\"1.0\" encoding=\"utf-8\"?>
Run Code Online (Sandbox Code Playgroud)

当我真的不想让它打印任何一个.

有人可以更改上面的代码来做它正在做的一切,除了不再打印<?xml version=\"1.0\" encoding=\"utf-8\"?>了吗?我已经尝试过删除带有该行的print语句,如下所示:

perl -ne '
    while(/(<PRINTKIT FORM_ID=\"PP_WELCOMEKIT\">.*?<\/PRINTKIT>)/g){ 
        print "<sf><XDF>$1</XDF></sf>"
    };
' $1 > $2.$TS2.postscrub
Run Code Online (Sandbox Code Playgroud)

这样做会使它输出一个0字节的文件,所以我知道它不起作用.

linux perl

2
推荐指数
1
解决办法
76
查看次数

标签 统计

linux ×1

perl ×1