由于'#‘在Perl中被视为注释字符,我想区分一下以hash(井号)开头的句子。我正在尝试对设备进行增量备份,但其中包含散列的行不断更改设备的修改时间。
! # Last modified Wed Apr 25 12:57:50 2018
set ns config -IPAddress x.x.x.x -netmask 255.255.255.0
enable ns feature WL LB CS SSL CF SSLVPN REWRITE RESPONDER
enable ns mode FR L3 MBF Edge USNIP PMTUD
--- 1,6 ----
show run
#NS12.0 Build 53.22
! # Last modified Wed Apr 25 13:02:05 2018
set ns config -IPAddress x.x.x.x -netmask 255.255.255.0
enable ns feature WL LB CS SSL CF SSLVPN REWRITE RESPONDER
enable ns mode FR L3 MBF Edge USNIP PMTUD到目前为止,在脚本中,我使用下面的字符串来匹配,但它不起作用。
if(open(F, "+< $incoming")) {
my $out = '';
while (<F>) {
/\#\ Last modified"/ and next;
$out .= $_;
}有没有关于如何删除整个句子谁有"#最后修改“的线索?
发布于 2018-04-25 15:51:41
如果您只是想跳过包含# Last modified的行,那么可以尝试这样做:
#!/usr/bin/perl
use strict;
use warnings;
use feature qw/ say /;
while(<DATA>){
chomp;
next if /# Last modified/;
say;
}
__DATA__
! # Last modified Wed Apr 25 12:57:50 2018
set ns config -IPAddress x.x.x.x -netmask 255.255.255.0
enable ns feature WL LB CS SSL CF SSLVPN REWRITE RESPONDER
enable ns mode FR L3 MBF Edge USNIP PMTUD
--- 1,6 ----
show run
#NS12.0 Build 53.22
! # Last modified Wed Apr 25 13:02:05 2018
set ns config -IPAddress x.x.x.x -netmask 255.255.255.0
enable ns feature WL LB CS SSL CF SSLVPN REWRITE RESPONDER
enable ns mode FR L3 MBF Edge USNIP PMTUD发布于 2018-04-25 16:20:21
如果您使用的是diff,那么最好的方法是使用-I选项,该选项将使它忽略两个文件中与正则表达式模式匹配的行
像这样
diff -I '# Last modified'这比对文件进行预处理以去除伪线要好得多
https://stackoverflow.com/questions/50016733
复制相似问题