Список файлов с помощью регулярных выражений в bash | игнорировать файл, содержащий определенные символы - PullRequest
0 голосов
/ 11 марта 2020

Я новичок в регулярных выражениях, я хочу перечислить соответствие файла с заданным регулярным выражением. У меня есть несколько примеров файлов, как показано на рисунке ниже

enter image description here

Я хочу регулярное выражение, которое должно возвращать ниже указанные файлы:

test1.csv test2.csv test3.csv test9.csv.tt

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

find . -maxdepth 1 -type f -name "**test[0-9]*[^-a-zA-Z_]***.csv*" -exec ls -l {} +

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

У кого-то есть идеи, пожалуйста, помогите!

1 Ответ

0 голосов
/ 11 марта 2020

Используя find, вы можете попробовать:

find . -type f -regex ./test[0-9]\*.csv.\* -exec ls -l {} +

Или, используя sed, вы можете попробовать

$ ls -l | sed '/^d/d;/ test[0-9]*\.csv.*/!d'

(не уверен, если цифры обязательны - если они, то замените * на +)

В этом sed.

  1. / test[0-9]*\.csv.*/!d удаляет любую строку, которая не соответствует регулярному выражению, по которому вы хотите выполнить фильтрацию.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...