sed: -i не может быть использован с stdin - PullRequest
1 голос
/ 22 ноября 2011

В PHP я использую proc_open () для передачи запроса sed () через stdin.

Однако

sed -i -e 's/USE `.*`;//'

Результат:

sed: -i нельзя использовать с stdin

Когда я запускаю ту же команду в оболочке, она работает нормально.

Кто-нибудь принимает? Невозможно найти ответы.

Обратите внимание, что причина использования sed -i заключается в том, что указанный файл имеет большой размер (1 ГБ).

1 Ответ

3 голосов
/ 22 ноября 2011

Флаг -i означает, что sed открывает файлы, изменяет их, а затем сохраняет их.

Поскольку вы не можете сохранить стандартный ввод, флаг -i не имеет смысла использовать со стандартным вводом.

чтобы сделать что-то, что имеет смысл, либо предоставьте файл в командной строке (который изменит файл на месте), либо уберите флаг -i, и измененный ввод будет напечатан в стандартный вывод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...