Удалить строки, содержащие два совпадения строк

Ради всех, кто сталкивается с проблемой, когда yum не распознает версии зависимостей, вот как я исправил разрешение зависимостей.

В моем пакете зависимостей заголовок спецификации rpm начинался с:

Name:       my-package
Provides:   my-package
Version:    1.2.0
Release:    0

Строка Provides: my-packageбыла избыточной и вводила в заблуждение yum, поскольку означала, что все версии пакета предоставляли my-package. Я не совсем понимаю, почему это приводило к игнорированию номеров версий и эпох, но вот так.

Удаление имени пакета my-packageиз списка материалов, которые он предоставляет, заставило yum соблюдать требования к версиям, как и ожидалось.

Я думаю, что это, вероятно, ошибка в yum. Я не проверял, делает ли dnfто же самое.

6
21.07.2021, 13:42
1 ответ

Использование Raku (, ранее известного как Perl _6)

raku -ne '.put  unless.grep: all(/def/, /jkl/);'

ИЛИ

raku -ne '.put if.grep: { !/def/ || !/jkl/ };'

ИЛИ (Раку-эквивалент кода Perl5 @terdon):

raku -ne '.put unless /def/ && /jkl/;'

ИЛИ

raku -ne '/def/ && /jkl/ ||.put;'

ИЛИ

raku -ne '(/def/ && /jkl/) ?? {next} !!.put'

Пример ввода:

1. abc def ghi
2. def ghi jkl
3. jkl mno pqr
4. jkl def stu
5. vwx yza bcd

Пример вывода:

1. abc def ghi
3. jkl mno pqr
5. vwx yza bcd

Вкратце,первые два ответа используют линейный флаг-ne(без -автопечати )вместе с подпрограммой Раку grep. Следующие три ответа являются Raku-эквивалентом Perl (5 )ответов @terdon.

Первые две(grep)строки кода интересны тем, что они используют два разных механизма :первая использует allсоединение (, часто вызываемое для наборов в Raku ), а во втором примере grepзапускается на блоке кода {}, который логически преобразуется в True/False.

Хорошая вариация первых двух результатов(grep)заключается в использовании дополнительных параметров (:k, :v, :kv, :p), доступных в подпрограмме grep. Например, простое добавление :pпар (параметра «наречие» )указывает коду на вывод результатов в виде пронумерованных пар:

raku -ne '.put if.grep( { !/def/ || !/jkl/ }, :p );' 

Пример вывода (с индексом):

0 => 1. abc def ghi
2 => 3. jkl mno pqr
4 => 5. vwx yza bcd

https://raku.org

0
11.10.2021, 03:43

Теги

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