Оболочка: найти следует игнорировать пробелы - PullRequest
0 голосов
/ 08 октября 2011

У меня есть шеллскрипт, который я запускаю из NSTask, который я строю динамически. Все отлично работает, кроме одного:

Если имя файла содержит пробел, оно игнорируется командой find. Я использую это так: 'find -iname * .xxx'.

Если имя файла выглядит как «aaa bbb.xxx», то оно не найдено.

Любая помощь приветствуется.

С уважением, Marcus

Ответы [ 2 ]

0 голосов
/ 08 октября 2011

Побег Узор, как это:

find -iname '*.xxx' -print

пожалуйста, учтите +1, если это помогло. спасибо

0 голосов
/ 08 октября 2011

find не волнует, если в именах ваших файлов есть пробелы. Это не твоя проблема.

Если вы на самом деле называете его так, как напечатано в вашем вопросе (find -iname *.xxx), то проблема в том, что вам нужно заключить в кавычки шаблон имени файла, чтобы защитить его от расширения оболочки: find -iname '*.xxx'. Обратите внимание на кавычки вокруг шаблона; они необходимы.

В противном случае проблема, скорее всего, заключается в том, как вы обрабатываете возвращаемые имена файлов. Например, это не сработает:

for f in `find -iname '*.xxx'`; do
   echo "file: $f"
done

вы увидите, что оператор backtick фактически разделяется на пробелы (или, собственно, $IFS), и вы получите два «файла»: «aaa» и «bbb.xxx».

...