Я хотел бы перечислить все файлы, соответствующие определенному шаблону, игнорируя регистр.
Например, я запускаю следующие команды:
ls *abc*
Я хочу видеть все файлы, которые имеют "abc" как часть имени файла, игнорируя регистр, как
-rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file1abc.txt
-rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file2ABC.txt
Запись
Я искал справочную страницу для дела, но не смог ничего найти.
shell
ls
wildcards
case-sensitivity
холодный морской тропический воздух
источник
источник
shport -s nocaseglob
?shopt -s
; чтобы сбросить его, вы используетеshopt -u
. Кроме того , вы можете обернуть все в субоболочке с помощью( )
так что настройка не влияет на родительскую оболочку:(shopt -s nocaseglob ; ls *abc*)
.[aA][bB][cC]
)?shopt
командой за последние 15 лет использования bash!Как объяснил polemon, это оболочка (не ls), которая распространяется
*abc*
на список файлов. Это называется сопоставлением с образцом .Помимо изменения всего поведения сопоставления с образцом для игнорирования регистра, вы можете использовать другую форму сопоставления с образцом, чем
*
. Следующее будет делать то, что вы хотите в bash:От Bash Man:
Это позволяет более точно сопоставлять зерно, где вы можете использовать
*[aA][bB]c*
для сопоставленияabc
илиABc
нет,abC
илиABC
. Или пример на французском, где я могу захотеть сопоставить все экземплярыe
персонажа:источник
[...]
во многих случаях они могут быть полезны, и я, хотя и заслуживал упоминания.[[=e=][=E=]]
.Вы также можете добавить
-i
(--ignore-case) параметр,grep
чтобы получить и ниже вывод.источник
Я не думаю, что это возможно с ls, но вместо этого вы можете использовать find:
источник
используйте следующий код:
источник
Вы можете GREP файл, используя
-i
который добавляет нечувствительный параметр.Например, чтобы найти оба,
abc
иABC
вы можете запустить эту командуисточник
-i
нигде не использовали опцию в своей команде.ls
?В tcsh установите псевдоним в .aliases
(«BS» = одна «обратная косая черта»; я должен был использовать ее, чтобы она отображалась в моем браузере.)
и использовать
lsnc
вместоls
В bash попробуйте псевдоним в .bash_aliases, например
С опциями
ls
, напримерls -l
, вот простое исправление:Tcsh:
Баш:
источник
=
' после lsnocase?ls
, нет ничего ,ls
иsort
может может исправить ситуацию. Как отмечалось в других ответах, проблема должна решаться в оболочке, а не с помощьюls
синтаксиса.