awk, начиная с фиксированного текста, до первой пустой строки

perl(Error)входит в состав пакета perl-Error. Он доступен в репозитории x86 _64, но это пакет архитектуры noarch, поэтому он должен быть совместим. Проверьте, предоставляет ли это ваше репо, и в конечном итоге включите/возьмите его из репозитория x86 _64 :

.

ftp://mirror.switch.ch/pool/4/mirror/centos/7.4.1708/os/x86_64/Packages/perl-Error-0.17020-2.el7.noarch.rpm

То же дляperl(Term::ReadKey)-имя пакетаperl-TermReadKey

2
07.04.2020, 21:26
1 ответ

Именно поэтому в awk есть режим абзаца:

$ awk -v RS= 'NR==1' file
Package: plasma-desktop
Architecture: amd64
Version: 4:5.12.9.1-0ubuntu0.1
Supported: 3y

и напечатать 2-ю запись - это просто очевидное изменение NR==1наNR==2:

$ awk -v RS= 'NR==2' file
Package: plasma-desktop
Architecture: amd64
Version: 4:5.12.4-0ubuntu1
Supported: 3y

Никогда не используйте выражения диапазона, между прочим -они делают код для тривиальных задач немного короче, чем использование флага, но тогда, если ваши требования изменятся в малейшей степени, потребуется полностью переписать или дублировать условия. Поэтому в любое время, когда вы захотите использовать /begin/,/end/с sed или awk, вместо этого используйте /begin/{f=1} f{print} /end/{f=0}с awk, и это дает вам НАМНОГО больший контроль над тем, когда и как печатать начальные/конечные строки и т. д.

8
28.04.2021, 23:18

Теги

Похожие вопросы