【发布时间】:2012-03-19 21:33:00
【问题描述】:
您好,我有一个特殊的问题,我正在努力找到(双关语)解决方案。
$> find ./subdirectory -type f 2>>error.log
我从该命令中收到类似“find: ./subdirectory/noidea: Permission denied”的错误,这将被重定向到 error.log。
在重定向到 error.log 之前,有什么方法可以将 stderr 传递到另一个命令?
我希望能够做类似的事情
$> find ./subdirectory -type f 2 | sed "s#\(.*\)#${PWD}\1#" >> error.log
我只想将 stderr 传递到 sed 命令并获取 find 命令错误 的整个路径。
我知道管道在这里不起作用,可能不是正确的方式。
我的问题是我需要 stdout 和 stderr 两者都必须同时通过不同的东西进行处理。
编辑: 好的。对我的问题稍作修改。
现在,我有一个 shell 脚本,solve_problem.sh
在这个 shell 脚本中,我有以下代码
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
同样的问题,但在 shell 脚本中。 “find: ./subdirectory/noidea: Permission denied” 错误应该进入 $ErrorFile 并且 stdout 应该分配给变量 $directories .
【问题讨论】:
标签: unix find pipe io-redirection