Как фильтровать регулярное выражение (исключить специальные символы)

Предположим, что мне нужно отфильтровать имена всех моих файлов, которые не включают специальные символы.

ASDA123fasf - would pass asasdasd*dasd - wouldn't pass
1
задан 19 May 2018 в 21:33

2 ответа

одна из многих альтернатив будет find . -maxdepth 1 -iregex '.*/[a-z0-9.]*' -ls

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

Примечание: ниже псевдонима будет работать только в текущей директории, хотя вы могли бы легко создать скрипт, который будет парсить аргумент командной строки каталог..

alias myls="find . -maxdepth 1 -iregex '.*/[a-z0-9.]*' -ls"

если вы были, чтобы сделать это, каждый раз, когда вы выдаете команду myls, вы получите желаемый результат без дополнительного ввода. Ленивый или эффективнее, решать вам.

источники: командир байт комментарий здесь!д5]

байт Командор комментарий здесь!д6] - конкретно этот ответ

man find

0
ответ дан 17 July 2018 в 13:54

Один из многих альтернатив был бы find . -maxdepth 1 -iregex '.*/[a-z0-9.]*' -ls

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

Примечание: Следующий псевдоним будет работать только в текущем каталоге, хотя вы можете легко создать скрипт, который будет анализировать аргумент командной строки для каталога.

alias myls="find . -maxdepth 1 -iregex '.*/[a-z0-9.]*' -ls"

Если вы должны это сделать, каждый раз, когда вы выдает команду myls, вы получите желаемый результат без дополнительной записи.

Источники: комментарий байтового коммандера здесь

Комментарий байтового коммандера здесь - в частности, этот ответ

man find

0
ответ дан 20 July 2018 в 13:58

Другие вопросы по тегам:

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