Только с ksh
, bash -O extglob
и zsh -o kshglob
:
test_file-+([[:digit:]])-master.tar.gz
В bash
сначала нужно установить extglob
опцию. Этот +(...)
соответствует одному или нескольким вхождениям заданных шаблонов. [:digit:]
внутри выражения со скобками [...]
- это определенный POSIX класс символов, который включает индо-арабские десятичные цифры ([[:digit:]]
то же самое, что [0123456789]
или [0-9]
).
Он будет соответствовать:
test_file-1234-master.tar.gz
test_file-1-master.tar.gz
test_file-123456789-master.tar.gz
Он будет не соответствовать:
test_file-1b-master.tar.gz
test_file--master.tar.gz
test_file-a1-master.tar.gz
test_file-abcd-master.tar.gz
test_file-Ⅵ-master.tar.gz # roman numeral
test_file-٨-master.tar.gz # Eastern Arabic decimal digit
Команда tar
в вашем вопросе должна быть выполнена следующим образом (с циклом):
shopt -s extglob # bash
# setopt kshglob # zsh
for f in test_file-+([[:digit:]])-master.tar.gz; do
tar xf "$f"
done
Более идиоматический короткий синтаксис в zsh
следующий:
setopt extendedglob
for f (test_file-[0-9]##-master.tar.gz) tar xf $f
(#
- расширенный глобальный эквивалент regexp *
, и ##
или +
).
Похоже, что файл optparse.py
из вашей установки Python 2.7 был поврежден. В частности, похоже, что он был перезаписан и заменен копией optparse.py
из Python 3.
Вывод dpkg -V
показывает много полей, проверяющих владельца, группу, режим и т. д. 5
в выводе указывает, что контрольная сумма MD5 файла в системе не совпадает с суммой в манифесте пакета. (Другими словами, содержимое было изменено после установки пакета.)
Не совсем уверен, как вы могли узнать, что могло вызвать это... Если вы установили модули Python от имени пользователя root, используя что-то, отличное от вашей ОС. дистрибутив пакета, это могло бы объяснить это... Возможно, если бы вы что-то установили, используя pip
? Хотя pip
обычно хорошо разделяет модули Python 2 и Python 3... Кроме того, я не понимаю, почему это касается конкретно optparse.py
...
В любом случае, чтобы решить эту проблему, вы можете попросить apt -get переустановить пакет, который должен исправить повреждение:
$ sudo apt-get install --reinstall libpython2.7-minimal