【发布时间】:2013-12-16 20:07:56
【问题描述】:
好的,这正在工作:
trace -t lstat64 -v lstat64 ls "myfilename" 2>pipefile
cat pipefile | grep ct | cut -d '[' -f 2 | cut -d ' ' -f 2
但我不想使用文件“pipefile”,如何将输出直接重定向到我的 grep 并剪切?
【问题讨论】:
标签: bash redirect solaris stdout
好的,这正在工作:
trace -t lstat64 -v lstat64 ls "myfilename" 2>pipefile
cat pipefile | grep ct | cut -d '[' -f 2 | cut -d ' ' -f 2
但我不想使用文件“pipefile”,如何将输出直接重定向到我的 grep 并剪切?
【问题讨论】:
标签: bash redirect solaris stdout
那么,你想忽略标准输出而只考虑标准错误?
trace -t lstat64 -v lstat64 ls "myfilename" 2>&1 1>/dev/null |
grep ct | cut -d '[' -f 2 | cut -d ' ' -f 2
首先,stderr 文件句柄被重定向到 stdout 文件句柄所指的任何内容,然后 stdout 文件句柄被重定向到 /dev/null。然后 grep 可以从 stdin 读取 trace 的 stderr 发出的任何内容。
【讨论】:
我明白了,我刚刚意识到我将 stderr 与 stdout 混淆了,这是我的解决方案:
trace -t lstat64 -v lstat64 ls "myfilename" 2>&1 | grep ct | cut -d '[' -f 2 | cut -d ' ' -f 2
【讨论】: