Проверка, имеет ли каждый «блок» менее 5 строк с определенным символом

Выбор зависит от приложения-упаковщика. Они могут упаковать deb или snap (или оба) по своему усмотрению. Либо можно установить на новую установку, либо перенести ее при обновлении версии. Проект Ubuntu не имеет предпочтения.

LibreOffice, например, доступен как в deb, так и в snap в 17.10. Обратите внимание, что разные версии упакованы для одной и той же версии Ubuntu:

$ apt show libreoffice | grep Version
Version: 1:5.4.5-0ubuntu0.17.10.1

$ snap search libreoffice
Name         Version  Developer  Notes  Summary
libreoffice  6.0.1.1  canonical  -      LibreOffice is a powerful office suite including word processing and creation of spreadsheets, slideshows and databases

Критерии выбора рабочей команды Ubuntu для команды snap vs. deb для включения в установку по умолчанию довольно просты: в результате чего будет создано меньше отчетов об ошибках и меньше вопросов поддержки?

0
задан 8 March 2018 в 12:43

3 ответа

Предполагая, что ваш критерий может быть выражен как количество строк, соответствующих регулярному выражению /PDB; [^;]*; X-ray/, вы могли бы сделать что-то вроде

awk -vRS= -F'\n' '
  {c=0; for(i=1;i<=NF;i++) c += $i ~ /PDB; [^;]*; X-ray/ ? 1 : 0} c >= 5
'

или (немного более аккуратно, IMHO)

perl -F'\n' -00ne 'print unless (grep { /PDB; [^;]*; X-ray/ } @F) < 5'
2] Пример

$ perl -F'\n' -00ne 'print unless (grep { /PDB; [^;]*; X-ray/ } @F) < 5' file
AAPK2_HUMAN Homo sapiens    P54646  PDB; 2H6D; X-ray; 1.85 A; A=6-279.
                    PDB; 2LTU; NMR; -; A=282-339.
                    PDB; 2YZA; X-ray; 3.02 A; A=6-279.
                    PDB; 3AQV_TAK.pdb; X-ray; 2.08 A; A=6-279.
                    PDB; 4CFE; X-ray; 3.02 A; A/C=1-552.
                    PDB; 4CFF; X-ray; 3.92 A; A/C=1-552.
                    PDB; 4ZHX_4O7_C1V_C2Z.pdb; X-ray; 2.99 A; A/C=2-552.
                    PDB; 5EZV_C1V_C2Z_STU.pdb; X-ray; 2.99 A; A/C=2-347, A/C=397-552.
                    PDB; 5ISO_992_STU.pdb; X-ray; 2.63 A; A/C=1-552.

ABC3B_HUMAN Homo sapiens    Q9UH17  PDB; 2NBQ; NMR; -; A=187-382.
                    PDB; 5CQD_GOL.pdb; X-ray; 2.08 A; A/C=187-378.
                    PDB; 5CQH; X-ray; 1.73 A; A=187-378.
                    PDB; 5CQI; X-ray; 1.68 A; A=187-378.
                    PDB; 5CQK_GOL_PGE.pdb; X-ray; 1.88 A; A=187-378.
                    PDB; 5TD5; X-ray; 1.72 A; A=187-378.
                    PDB; 5TKM; X-ray; 1.90 A; A/B=1-191.
3
ответ дан 22 May 2018 в 12:41

Предполагая, что ваш критерий может быть выражен как количество строк, соответствующих регулярному выражению /PDB; [^;]*; X-ray/, вы могли бы сделать что-то вроде

awk -vRS= -F'\n' ' {c=0; for(i=1;i<=NF;i++) c += $i ~ /PDB; [^;]*; X-ray/ ? 1 : 0} c >= 5 '

или (немного более аккуратно, IMHO)

perl -F'\n' -00ne 'print unless (grep { /PDB; [^;]*; X-ray/ } @F) < 5'

Пример

$ perl -F'\n' -00ne 'print unless (grep { /PDB; [^;]*; X-ray/ } @F) < 5' file AAPK2_HUMAN Homo sapiens P54646 PDB; 2H6D; X-ray; 1.85 A; A=6-279. PDB; 2LTU; NMR; -; A=282-339. PDB; 2YZA; X-ray; 3.02 A; A=6-279. PDB; 3AQV_TAK.pdb; X-ray; 2.08 A; A=6-279. PDB; 4CFE; X-ray; 3.02 A; A/C=1-552. PDB; 4CFF; X-ray; 3.92 A; A/C=1-552. PDB; 4ZHX_4O7_C1V_C2Z.pdb; X-ray; 2.99 A; A/C=2-552. PDB; 5EZV_C1V_C2Z_STU.pdb; X-ray; 2.99 A; A/C=2-347, A/C=397-552. PDB; 5ISO_992_STU.pdb; X-ray; 2.63 A; A/C=1-552. ABC3B_HUMAN Homo sapiens Q9UH17 PDB; 2NBQ; NMR; -; A=187-382. PDB; 5CQD_GOL.pdb; X-ray; 2.08 A; A/C=187-378. PDB; 5CQH; X-ray; 1.73 A; A=187-378. PDB; 5CQI; X-ray; 1.68 A; A=187-378. PDB; 5CQK_GOL_PGE.pdb; X-ray; 1.88 A; A=187-378. PDB; 5TD5; X-ray; 1.72 A; A=187-378. PDB; 5TKM; X-ray; 1.90 A; A/B=1-191.
3
ответ дан 17 July 2018 в 19:18

Предполагая, что ваш критерий может быть выражен как количество строк, соответствующих регулярному выражению /PDB; [^;]*; X-ray/, вы могли бы сделать что-то вроде

awk -vRS= -F'\n' ' {c=0; for(i=1;i<=NF;i++) c += $i ~ /PDB; [^;]*; X-ray/ ? 1 : 0} c >= 5 '

или (немного более аккуратно, IMHO)

perl -F'\n' -00ne 'print unless (grep { /PDB; [^;]*; X-ray/ } @F) < 5'

Пример

$ perl -F'\n' -00ne 'print unless (grep { /PDB; [^;]*; X-ray/ } @F) < 5' file AAPK2_HUMAN Homo sapiens P54646 PDB; 2H6D; X-ray; 1.85 A; A=6-279. PDB; 2LTU; NMR; -; A=282-339. PDB; 2YZA; X-ray; 3.02 A; A=6-279. PDB; 3AQV_TAK.pdb; X-ray; 2.08 A; A=6-279. PDB; 4CFE; X-ray; 3.02 A; A/C=1-552. PDB; 4CFF; X-ray; 3.92 A; A/C=1-552. PDB; 4ZHX_4O7_C1V_C2Z.pdb; X-ray; 2.99 A; A/C=2-552. PDB; 5EZV_C1V_C2Z_STU.pdb; X-ray; 2.99 A; A/C=2-347, A/C=397-552. PDB; 5ISO_992_STU.pdb; X-ray; 2.63 A; A/C=1-552. ABC3B_HUMAN Homo sapiens Q9UH17 PDB; 2NBQ; NMR; -; A=187-382. PDB; 5CQD_GOL.pdb; X-ray; 2.08 A; A/C=187-378. PDB; 5CQH; X-ray; 1.73 A; A=187-378. PDB; 5CQI; X-ray; 1.68 A; A=187-378. PDB; 5CQK_GOL_PGE.pdb; X-ray; 1.88 A; A=187-378. PDB; 5TD5; X-ray; 1.72 A; A=187-378. PDB; 5TKM; X-ray; 1.90 A; A/B=1-191.
3
ответ дан 23 July 2018 в 20:03

Другие вопросы по тегам:

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