2013-05-06 2 views
0

У меня есть каталог с несколькими файлами PHP на нескольких уровнях. Я хочу выполнить следующую команду для всех этих файлов PHP.xargs и позиция аргумента

php ../../i18n/add-textdomain.php -i bulk-delete file_name.php 

Итак, я написал следующую команду find и водопроводной его xargs

find . -iname "*.php" -type f -print0| xargs -0 php ../../i18n/add-textdomain.php -i bulk-delete 

Команда php ожидает, что файл PHP быть последним аргументом. Я предположил, что xargs добавит файлы, перечисленные find в конце. Но это, похоже, не происходит.

Как сообщить xargs, чтобы добавить аргументы в конце команды?

+1

'xargs' добавляет элементы в' stdin' до конца команды по умолчанию. Вы можете использовать '-I', чтобы переопределить это, но кажется, что что-то еще не так для вас. Вам нужен только один файл PHP для каждой команды? Если это так, используйте '-n 1'. –

+0

@MichaelBurr Кажется, проблема не в позиции, но мне нужен один файл за команду. Я добавил '-n1', как вы предложили, и теперь он работает. Можете ли вы опубликовать его в качестве ответа, чтобы я мог его принять? – Sudar

ответ

4

xargs прилагает элементы в stdin до конца команды по умолчанию. Вы можете использовать -I, чтобы переопределить это, но, похоже, что-то еще не так. Вам нужен только один файл PHP для каждой команды? Если да, используйте -n 1.

Смежные вопросы