Список имен файлов, содержащих строку, которая встречается между две другие строки [closed]

Вы можете скачать исходники gnome-settings-daemon командой apt-get source.

Затем вы можете добавить патчи в каталог debian/patches (и добавить имя файла патча в debian/patches/series)

Вам нужно изменить версию в файле debian/changelog (т.е. dch -llocal).

А затем пересоберите пакет с помощью dpkg-buildpackage -b

В результате должны получиться .deb файлы

2
20.02.2019, 16:36
1 ответ

Приведенные выше предупреждения, здесь и здесь , но особенно здесь относительно попыток парсить XML-файлы с помощью регулярных выражений -приняты во внимание. В общем, текст XML может не ограничиваться одной строкой, но поскольку в этом случае вы ищете определенные отдельные слова и при условии, что они сами не разбиты на несколько строк, вы можете использовать простой скрипт awk который сохраняет «состояние». Если он видит следующее ожидаемое слово, он увеличивает значение state. Если он находит все ожидаемые шаблоны в правильном порядке, он устанавливает переменную found, код возврата которой мы затем основываем на:

#!/bin/sh
for f in *
do
  awk '
/advanced_override\.begin/ { state=1; }
/PREFETCH/ && state == 1 { state=2; }
/advanced_override\.end/ && state == 2 { found=1; }
END {
  if (found)
    exit 0
  else
    exit 1
}
' "$f" && printf "Found in: %s\n" "$f"
done

Учитывая эти 3 примера входных файлов:

$ cat input1
junk
advanced_override.begin other text
other text
PREFETCH other text
other text
advanced_override.end

$ cat input2
just some stuff
advanced_override.end

$ cat input3
junk
advanced_override.begin other text other text PREFETCH other text other text advanced_override.end
junk

Пример запуска скрипта дает:

Found in: input1
Found in: input3
0
27.01.2020, 22:20

Теги

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