Перечислите все файлы, заканчивающиеся на 10 или 11 или 12

Чтобы перечислить все файлы, заканчивающиеся на 10 или 11 или 12, я попытался использовать ls *[10-12] и ls *[10,11,12] но они не работают. Я не знаю почему. Может кто-нибудь мне помочь?

  • Можно ли показать, как работает бас-глобус?
  • Перемещение уникальных файлов из папки с дубликатами файлов
  • Имя файла Regex с несколькими цифрами
  • Скопировать файлы .txt в определенную директорию
  • Есть ли причина использовать несколько вопросительных знаков вместо звездочки в расширении имени файла?
  • Шаблоны с тремя точками
  • Как удалить файлы с помощью ~?
  • Переместить каждый файл, который не является каталогом
  • 4 Solutions collect form web for “Перечислите все файлы, заканчивающиеся на 10 или 11 или 12”

    [...] соответствует одному символу, если он указан в указанном наборе.

    [10-12] означает либо символ 1 либо символы от 0 до 1 или символ 2 так же, как [102] или [0-2] .

    [10,11,12] означает либо 1 , 0 [10,11,12] … … так же, как [,0-2] .

    Здесь вы хотите:

     ls -d -- *1[0-2] 

    То есть (не скрытые) имена файлов, которые заканчиваются на 1, за которым следует любой из 0 , 1 или 2 символов.

    Теперь остерегайтесь, что он также соответствует foo110 или foo112345612 .

    Если вы этого не хотите, тогда вам понадобится что-то вроде:

     ls -d -- *[!0-9]1[0-2] 1[0-2] 

    Это, однако, не соответствовало бы foo010

    Если из foo10 , foo00010 , foo110 вы хотите, чтобы foo10 и foo00010 соответствовали, то с ksh или bash -O extglob или zsh -o kshglob :

     ls -d -- !(*[0-9])*(0)1[0-2] 

    Обратите внимание, что, за исключением zsh , если какой-либо из этих шаблонов не соответствует, шаблоны будут передаваться как-есть в ls , поэтому вы можете лишить список нежелательных файлов, если есть такие файлы. С помощью bash вы можете установить параметр failglob чтобы обойти это.

    zsh – единственная оболочка, которая имеет оператор glob для соответствия диапазонам чисел.

     ls -d -- *<10-12> 

    будет соответствовать файлам, заканчивающимся числом от 10 до 12. Он также будет соответствовать foo110 так как foo1 следует за 10 . Вы могли бы сделать (с extendedglob ):

     ls -d -- (^*[0-9])<10-12> 

    хоть.

    zsh также является оболочкой, которая ввела тип расширения {10..12} расширения скобок (скопировано ksh93 и bash несколько лет спустя).

    Однако, подобно эквиваленту {10,11,12} , который не является глобированием. Это форма расширения, которая выполняется перед глобализацией.

     ls -d -- *{10..12} 

    сначала расширяется до:

     ls -d -- *10 *11 *12 

    Если какой-либо из этих трех глобусов терпит неудачу, команда отменяется в zshbash -O failglob ).

    Это должно работать:

     ls -d -- *1[0-2] 

    Помните, что [] представляет набор символов, а в случае чисел он может перейти от [0-9]

    Попробуй это :

     ls *{10,11,12} 

    или

     ls -l *{10,11,12} 

    (не может показывать скрытые файлы)

    ls *@(10|11|12) – это то, что вы ищете.

    Для этого необходимо, чтобы extglob с помощью shopt , т. shopt -s extglob . Кроме того, вы можете добавить эту строку в ~/.bashrc чтобы окончательно включить ее.

    Для получения дополнительной информации о том, почему это работает, см. Официальную страницу руководства Bash по сопоставлению с образцом .

    Interesting Posts

    Как проверить локальный пакет dsc (нужно проверить «раздел», «приоритет»)

    Нет Интернета после сна; «Нет доступных маршрутизаторов ipv6»

    HDMI-CEC для питания нескольких телевизоров Panasonic

    Кто является владельцем файла, если файл создан с помощью команды sudo?

    Какое программное обеспечение позволяет изменять среду выполнения, сохраняя при этом одно и то же ядро?

    Как найти и опорожнить некоторые каталоги

    Как найти модуль, реализующий сетевой интерфейс, когда в / sys / class / net / eth0 нет «устройства»?

    Установить SLIP Между xenix и linux

    Как использовать оператор if для изменения выходного сообщения

    Subversion (svn) не хранит пароли в gnome-keyring

    Как я могу остановить grep, возвращая себя

    Как сделать мой ноутбук безопасным и безопасным от любых несчастных случаев, таких как удаление по ошибке?

    Проблема с установкой postfix (синхронизация с клиентом)

    лучший способ получить memfree из / proc и преобразовать в десятичный

    Получение 3G-модема, подключенного автоматически на встроенном Debian 8

    Linux и Unix - лучшая ОС в мире.