@andranique

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

Имеется, допустим, ряд файлов
test1212test.txt
test1211test.txt
test12test.txt
test21test.txt
test2121test.txt
test33test.txt
test1test.txt
test2test.txt
test3test.txt
Например, для того, чтобы вывести файлы test1test.txt test2test.txt нужно набрать следующую команду в терминале:
ls test[12]test.txt
Терминал выведет следующее:
test1test.txt test2test.txt
Как вывести через ls файлы test1211test.txt test1212test.txt таким же образом?
Через квадратные скобки не получается - ограничены числами 0-9.
  • Вопрос задан
  • 478 просмотров
Решения вопроса 1
@warnerbrowsers
Если надо вывести файлы с 4-мя цифрами в середине, надо указать так
test\d{4}test.txt. Если от 2 до 4 цифр,то так
test\d{2,4}test.txt. Дальше по аналогии.

Или если абстрактно отвлечься.Между test и test.txt стоят несколько символов, не важно, цифр или букв. Тогда можно так попробовать. Хоть некрасиво, но работает.125bde4cb8424bd98f40bff6f6f747db.png

Или если надо цифры по порядку выводить, то как-то так
87fa676ef99d4fb6b405a40afe8ff133.png
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Ivanq
@Ivanq
Знаю php, js, html, css
Добавьте плюс - ls test[1234567890]+test.txt или вообще ls test\d+test.txt

(Сам в баше не силен, но может сработать)

UPD То, что я принял за регулярное выражение - bash expansion. Тут можно использовать ls | egrep '^test\d+test.txt$' или что-то подобное
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы