小编Blu*_*man的帖子

perl grep 文件的输出

我使用 grep 返回找到的第一个 NAME 的值(可能因情况而异),并搜索找到的 NAME 的值。另外,只想在最后一个“/”之后输出文本。

示例文件包含

NAME = abc123
abc123 = /path/to/x456
Run Code Online (Sandbox Code Playgroud)

预期输出:

x456
Run Code Online (Sandbox Code Playgroud)

代码:

my $name = qx(grep -oP -m 1 "NAME = \\K(.*)" $file);
my $value = qx(grep -oP -m 1 "${name} = \\K(.*)" $file);
Run Code Online (Sandbox Code Playgroud)

perl grep

3
推荐指数
1
解决办法
103
查看次数

Perl:使用通配符检查文件是否存在

我正在尝试使用 -e 来检查文件是否存在,$name 是用户指定的任何输入,"_file_"是固定的,而 * 可能是任何可能的。目前它无法检测到该文件。

if (-e $name."_file_*.txt)
{
   do something;
}
Run Code Online (Sandbox Code Playgroud)

perl

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

Perl XML 使用 XML::LibXML 获取元素节点

我想替换我的 XML 文件的元素节点,但我什至没有成功获取节点。我下面的代码适用于其他子节点,但不适用于id节点。

这是我的 XML 文件:

<header>
    <idset id="100">                            
        <a>item_a</a>
        <b>item_b</b>
    </idset>
</header>
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
use XML::LibXML;

my $file = 'test.xml';
my $parser = XML::LibXML->new();
my $doc = $parser->load_xml(location => $file);

my($object11) = $doc->findnodes('/header/idset');
say 'a: ',$object11->findvalue('./a');
say 'b: ',$object11->findvalue('./b');
say 'id: ',$object11->findvalue('./id');
Run Code Online (Sandbox Code Playgroud)

当前结果:

a: item_a
b: item_b
id:
Run Code Online (Sandbox Code Playgroud)

期待结果:

a: item_a
b: item_b
id: 100
Run Code Online (Sandbox Code Playgroud)

xml perl xml-libxml

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

标签 统计

perl ×3

grep ×1

xml ×1

xml-libxml ×1