如何捕获 dd 命令输出

如何捕获 dd 命令输出

我有一个测试脚本,用于估计特定 Oracle 导出转储文件的文件大小。脚本的内容是:

 mknod exp.pipe p
 dd if=exp.pipe of=/dev/null bs=1024 &
 exp system/sys123@testorcl file=exp.pipe parfile=exptest1.par

输出如下屏幕所示,需要将其捕获到进一步计算所需的文件或变量中。

. exporting dimensions
. exporting post-schema procedural objects and actions
. exporting statistics
Export terminated successfully without warnings.
12+0 records in.
12+0 records out.

我需要通过变量或文件计算 Records in 或 Records out 中的值 12 和 0,以可行的为准。

答案1

我以同样的方式开始

mknod exp.pipe p
wc -c < exp.pipe > pipe.c 2>&1 &
dd if=/dev/zero of=exp.pipe count=5

5+0 records in
5+0 records out
2560 bytes (2,6 kB) copied, 0,001472 s, 1,7 MB/s

然后

cat pipe.c
2560

这不是你问的,但它会给你出口的大小。

我没有实用exp工具,但在过去,曾经有一个预览选项,它(通过正确的解析)可能会给你一个关于它的大小的提示。

答案2

重定向标准错误

dd if=exp.pipe of=/dev/null bs=1024 2> dd

相关内容