2014-12-04 6 views
1

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

Мой вход выход из этого:

newHTK=`grep -Fxv -f $TMPFILE /Users/foo/.htk` 

который генерирует вышеупомянутый список имен файлов. Вот где-то идет не так (или иногда необъяснимо направо):

echo "$newHTK" | xargs -L 1 xattr -w com.apple.metadata:kMDItemFinderComment htk 

Намерение для это использовать каждую строку в $newHTK в качестве имени файла аргумент для xattr. То, что обычно происходит, - xattr, разделяет входные данные в пространстве. Я думаю, мне, возможно, придется избегать имен файлов, выходящих из команды echo, или каким-то образом заключить их в двойные кавычки (любые советы по простому способу сделать это будут оценены). Но если это так, почему это работает для некоторых файлов?

ответ

3

Вы можете использовать флаг xargs-I (если у вас есть это, я не знаю, для чего это его мобильность).

grep -Fxv -f $TMPFILE /Users/foo/.htk | xargs -I % xattr -w com.apple.metadata:kMDItemFinderComment htk % 
Смежные вопросы