Я использую ubuntu 14.4
и пытаюсь перенаправить вывод grep
команды в файл, но продолжаю получать эту ошибку:
grep: input file 'X' is also the output
Я искал эту проблему и только что обнаружил, что это ошибка, ubuntu 12.4
и нет никакого описания, может кто-нибудь помочь мне разобраться в этой проблеме?
Я запускаю следующую команду:
grep -E -r -o -n r"%}(.*){%" > myfile
я добавляю свою команду! спасибо за подсказку, но когда я пытаюсь использовать файл по другому пути, он не предопределяет его, и я не могу этого сделать!
—
Kasramvd
например с ../fi получить это
—
Kasramvd
bash: ../f.txt: Permission denied
Команда show full, какой у вас входной файл или вы используете канал?
—
Джимми
Теперь я понимаю, что вы на самом деле рекурсивно извлекаете всю структуру каталогов и хотите добавить результат в файл, который уже существует в этой структуре. Проблема в том, что оболочка (bash, zsh и т. Д.) Сначала выполняет перенаправление, а затем возвращается к командам (в этом примере grep). Это означает, что
—
Джимми
grep
в команде grep pattern file > file
видит уже пустой файл, поэтому ничего не имеет в качестве ввода. Однако, если вы используете >>
вместо >
этого файл не пустой, но grep выдает ошибку в любом случае, так как это может привести к рекурсивной обработке одной и той же строки (шаблона) снова и снова.
grep pattern file > file
то это не сработает. Вы не можете использовать тот же файл, что и для ввода и вывода для grep.