Что такое команда для вывода списка всех файлов, заканчивающихся маленькими буквами? - PullRequest
0 голосов
/ 11 января 2011

предположим, у меня есть 'n' количество файлов, таких как apple, BAT, comas, aba, abc, abc03 ..... и т. Д.

также Что представляет собой команда для вывода списка всех файлов, которые заканчиваются строчными буквами, но не «a» и «c»? или любой конкретный символ

Ответы [ 2 ]

3 голосов
/ 11 января 2011

На bash:

$ LC_ALL=C
$ ls
bar  BAT  cab  foo  ieee2000  MAC  moc  test  zac  zara  ZOO
$ ls *[a-z]
bar  cab  foo  moc  test  zac  zara
$ ls *[bd-z]
bar  cab  foo  test
$ ls *[^cC]
bar  BAT  cab  foo  ieee2000  test  zara  ZOO
$ ls *[^bc]
bar  BAT  foo  ieee2000  MAC  test  zara  ZOO

Поскольку это расширения оболочки , вы также можете использовать их в циклах и т. Д. Относительно легко.

Обратите внимание на настройку LC_ALL=C -если вы используете неанглийский язык, это может потребоваться для получения правильных результатов:

$ echo $LC_COLLATE
en_US.UTF-8
$ ls *[a-z]
bar  BAT  cab  foo  MAC  moc  test  zac  zara  ZOO
$ LC_COLLATE=C
$ ls *[a-z]
bar  cab  foo  moc  test  zac  zara

Как видно из примера выше, вы можете установить более конкретную переменную LC_COLLATE вместо LC_ALL.

РЕДАКТИРОВАТЬ:

Кстати, по крайней мере, в моей системе (Mandriva Linux 2010.1) локаль также влияет на grep:

$ LC_COLLATE=en_US.UTF-8
$ echo A | grep '[a-z]'
A
$ LC_COLLATE=C
$ echo A | grep '[a-z]'
$ 
0 голосов
/ 11 января 2011

Вы можете использовать комбинацию ls и grep с регулярными выражениями:

ls | grep -e "[bd-z]$"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...