Исключение расширения файла через символы подстановки - PullRequest
0 голосов
/ 14 января 2019

У меня есть каталог с файлами с несколькими расширениями, такими как * .asc, .txt. .csv и т. Д. Я использую этот путь в скрипте, где я могу изменить только имена файлов, которые передаются через переменную.

/home/myuser/mydirectory/{fileNameVariable}

Я могу выбрать все .csvs, передав * .csv в качестве значения переменной или * .txt для соответствующих файлов. Однако я хочу выбрать все файлы (.csv, .txt и т. Д.), Кроме * .asc.

Есть ли способ использовать подстановочный знак, я могу исключить только одно расширение файла и выбрать остальные?

1 Ответ

0 голосов
/ 14 января 2019

Вы можете использовать расширение скобки , чтобы выбрать только те имена и расширения, которые вы хотите, и исключить любое из расширений, которые не названы. Например, чтобы найти все файлы .csv и .txt в каталоге, вы можете использовать:

$ ls -al *.{csv,txt}    ## note: no space after the separating comma

Если у вас было много файлов test1..., test2..., etc. и вы хотели выбрать только файлы test2*.csv и test2*.txt, вы могли бы сузить начальный глобус до:

$ ls -al test2*.{csv,txt}

Конечно, вы можете использовать свой путь и имя переменной вместо test2 выше.

...