Почему мое регулярное выражение не работает в bash «if»?

Вот мой код:

if [ -f /Applications/xml[0-9].pl ] 

Я также попытался с -f =~ и двойными скобками, но ни один из них не работает.

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

 echo h1 | sed 's/h[0-9]/h/' 

И это сработало. Что я здесь делаю неправильно?

2 Solutions collect form web for “Почему мое регулярное выражение не работает в bash «if»?”

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

 for file in /Applications/xml[0-9].pl; do if [ -f "$file" ]; then ... 

bash расширяет регулярное выражение перед оценкой условия. Если в вашем каталоге три файла по имени

 /Applications/xml0.pl /Applications/xml1.pl /Applications/xml2.pl 

ваш оператор if выглядит как оболочка как

 if [ -f /Applications/xml0.pl /Applications/xml1.pl /Applications/xml2.pl ]] 

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

 for file in /Applications/xml[0-9].pl do if [ -f ${file} ] 

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

  • Дублировать файл со случайной вероятностью
  • Неизменяемый бит в AIX?
  • Крепление NFS: занято устройство или ресурс
  • Печать несуществующих файлов с входного канала
  • хранить N файлов в подкаталогах
  • linux сравнить текстовый файл
  • Как создать zip-каталогов -mtime -150
  • Как удалить повторяющиеся строки внутри текстового файла?
  • Как реализовать горизонтальный кот?
  • Самый дешевый способ найти самый старый файл (рекурсивно) из каталога с большой нагрузкой
  • Как организовать файлы в оболочке Linux / Unix?
  • Interesting Posts

    Логротат не работает

    SSH: Как отключить слабые шифры?

    Raid5, что может случиться? Разрушение раздела, теперь что мне делать?

    Получить имя файла после find -name | xargs

    Крепление FUSE от udev дает «Конечная точка транспорта не подключена», отлично, как root

    Как создать защищенный паролем сценарий оболочки

    Каков механизм дифференциации требований к корням для команд терминала?

    Как установить и настроить ImageMagick для PHP и Wordpres на Amazon Linux AMI

    хороший способ «резервного копирования» системных настроек?

    Как я могу отключить / proc псевдо-файловую систему в общей среде Linux?

    Получите строку и поместите ее в начале строки, пока не будет найдена следующая строка

    GPT имеет неправильные записи

    Что означает * рядом с именем файла в выводе ls?

    Как печатать несколько файлов одновременно с помощью lpr?

    Как удаленно выполнить команду ssh команду sudo без пароля

    Linux и Unix - лучшая ОС в мире.