Найти папки, содержащие имена + 1900-1990 + имен

Это номера строк для старых / новых файлов, помогающие программе patch (или аналогичной) декодировать файл unified-diff.

  • Число после запятой - это длина фрагмента (в старом или новом файле), а
  • число перед запятой - это номер строки для начала фрагмента.
  • Знаки + и - относятся к добавлению и удалению строк соответственно.

В вашем примере в строке

@@ -1,4 +1,5 @@

используются знаки - и + в качестве аналогии для и > знаки, используемые в обычном выводе diff для левого / правого файлов. Оба этих формата пытаются чередовать строки различия. (Контекстная разница показывает блоки до и после, а не чередование).

Unified diff - это особый формат программы diff ; другие широко поддерживаемые форматы обсуждаются в разделе Выходные форматы diff .

Дополнительная литература:

0
18.03.2019, 04:57
1 ответ
find. -type d '(' -name '*19[0-8][0-9]*' -o -name '*1990*' ')'

Это позволит найти любой каталог в текущем каталоге или под ним, имя которого содержит любое из чисел от 1900 до 1990. Тест делится на две части по имени файла, где первый проверяет числа между 1900 и 1989, а второй тест за 1990 год.

В этом случае нет необходимости использовать регулярные выражения. Приведенные выше шаблоны представляют собой шаблоны подстановки имен файлов.

Если вы хотите добавить проверку суффикса имени файла .events, вы можете сделать это двумя способами:

find. -type d -name '*.events' '(' -name '*19[0-8][0-9]*' -o -name '*1990*' ')' 

find. -type d '(' -name '*19[0-8][0-9]*.events' -o -name '*1990*.events' ')'

Ваша команда ничего не найдет, так как *в начале регулярного выражения соответствует символу *. Вы также экранируете один из [в выражении, что делает его соответствующим символу [.

1
28.01.2020, 02:42

Теги

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