Использование GNU sed
:
$ show inventory | sed -n '/^NAME: "1"/,+1s/^.*, //p'
DESCR: "WS-C3750G-12S"
SN: FDO1129Z9ZJ
Сценарий редактирования sed
будет искать строки, начинающиеся с NAME "1"
, и применяет замену к этим строкам и первая сразу после строки.
Замена удалит все в строках до последней запятой включительно (и пробел сразу после нее). Полученные строки выводятся на терминал.
Если вам нужен только серийный номер и последняя строка вывода:
$ show inventory | sed -n -e '/^NAME: "1"/{n;s/^.*, //p}' -e '$p'
SN: FDO1129Z9ZJ
Barragan_3750>
Здесь сценарий sed
находит строку, как и раньше, но сразу же читает следующую строку (с n
) и выполняет ту же замену, что и раньше, только в этой строке. Это даст вам серийный номер.
Затем он также печатает последнюю строку ввода.
Сperl
:
#!/usr/bin/env perl
use strict;
use warnings;
use v5.10;
my @lines = (1, 2, 4);
while(<>) {
next unless $. ~~ @lines;
chomp;
s#.*?(<book>.*</book>).*#$1#;
say
}