Debian sed: невозможно прочитать

Я пытаюсь запустить команду для удаления require_once из php-файлов отсюда (код ниже), но я получаю сообщение об ошибке:

sed: невозможно прочитать -: нет такого файла или каталога

Я в правильной папке; в чем проблема?

 find . -name '*.php' -not -wholename '*/Loader/Autoloader.php' \ -not -wholename '*/Application.php' -print0 | \ xargs -0 sed --regexp-extended --in-place 's/(require_once)/\/\/ \1/g' 

Обновить:

Если я запустил:

 find . -name '*.php' -not -wholename '*/Loader/Autoloader.php' \ -not -wholename '*/Application.php' -print0 

Я получил:

find: неверный предикат `-wholename '

Я попробовал это, и он вернул список всех файлов:

 find . -name '*.php' -not -name '*/Loader/Autoloader.php' \ -not -name '*/Application.php' -print0 

Но затем измените оригинал, чтобы отразить это:

 find . -name '*.php' -not -name '*/Loader/Autoloader.php' \ -not -name '*/Application.php' -print0 | \ xargs -0 sed --regexp-extended --in-place 's/(require_once)/\/\/ \1/g' 

Дает ошибку:

bash: xargs: команда не найдена

FYI, я запускаю sed версии 4.1.2, и я уже немного потерял в командной строке, поэтому, пожалуйста, объясните ответы

Ошибка, похоже, указывает на то, что sed пытается читать из stdin . Вы пробовали только часть поиска, чтобы увидеть, возвращает ли он какой-либо файл?

Ваш второй вызов не имеет никакого смысла, почему «\» перед xarsg? Вы пытаетесь вызвать программу под названием «xargs», и bash сообщает вам, что она не может ее найти (обратите внимание на двойной пробел после двоеточия), что неудивительно.

Чтобы избавиться от случая ошибки, когда sed зависает, когда xargs возвращает нулевые файлы (потому что он пытается читать из stdin, когда нет аргументов командной строки), вы должны добавить -r в свои аргументы xargs.

Какая версия sed у вас есть? POSIX sed не понимает опции двойной тире, также не миниатюрные, но GNU sed делает.

Для чего-то более портативного (и IMO лучше), попробуйте sed -i '/require_once/s![[:space:]]*!&// !' ,

Я предпочитаю perl -pi.bak для подобных случаев.

FMTYEWTK: http://www.perl.com/pub/2004/10/14/file_editing.html

(FMTYEWTK означает намного больше, чем вы когда-либо хотели знать)