Привет, у меня есть особая проблема, и я очень стараюсь найти (каламбур) - решение для нее.
$> find ./subdirectory -type f 2>>error.log
Я получаю сообщение об ошибке, что-то вроде «find: ./subdirectory/noidea: В доступе отказано», и оно будет перенаправлено на error.log .
Можно ли как-нибудь передать stderr другой команде перед перенаправлением на error.log ?
Я хочу иметь возможность сделать что-то вроде
$> find ./subdirectory -type f 2 | sed "s#\(.*\)#${PWD}\1#" >> error.log
где я хочу передать только stderr команде sed и получить полный путь к ошибке команды find .
Я знаю, что здесь не работают трубопроводы и, вероятно, это неправильный путь.
Моя проблема в том, что мне нужны оба stdout и stderr , и оба должны обрабатываться разными способами одновременно.
EDIT:
Хорошо. Небольшое изменение моей проблемы.
Теперь у меня есть сценарий оболочки, solve_problem.sh
В этом сценарии оболочки у меня есть следующий код
ErrorFile="error.log"
for directories in `find ./subdirectory -type f 2>> $ErrorFile`
do
field1=`echo $directories | cut -d / -f2`
field2=`echo $directories | cut -d / -f3`
done
Та же проблема, но внутри сценария оболочки. Ошибка «find: ./subdirectory/noidea: Permission denied» должна быть записана в $ ErrorFile , а stdout должен быть присвоен переменной $ directoryies .