Пропускать строки в файле, которые соответствуют строке - PullRequest
0 голосов
/ 25 апреля 2018

Так как '#' рассматривается как символ для комментария в Perl, я хотел бы найти предложение, где оно начинается со знака хеш (фунт). Я пытаюсь сделать инкрементное резервное копирование устройства, но строка, в которой есть хэш, продолжает изменять время модификации устройства.

 ! # 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 .= $_;
    }

Есть ли у вас указания, как удалить целое предложение, у которого есть "# Последнее изменение"?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Если вы используете diff, тогда лучше всего использовать опцию -I, которая будет игнорировать строки, соответствующие шаблону регулярных выражений в обоих файлах

Как это

diff -I '# Last modified'

Это гораздо предпочтительнее предварительной обработки ваших файлов для удаления паразитных строк

0 голосов
/ 25 апреля 2018

Если вы просто хотите пропустить строки, содержащие # 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...